jquery - 为什么 $ ('#table > tr' ) 选择器不匹配? (始终返回 0)

标签 jquery jquery-selectors

html代码:

<table id='table'>
    <tr>
        <td>..</td>
    </tr>
</table>

使用jquery的js代码:

var l1 = $('#table > tr').length;
var l2 = $('#table tr').length;
alert(l1+','+l2);​

结果:

 0,1

为什么第一个#table > tr得到0?

您可以从这里观看现场演示:http://jsfiddle.net/Freewind/PmsFQ/

最佳答案

因为 <table> 的直接子代只能是<thead> , <tbody> ,或<tfoot> (或 <colgroup><caption> ,但它们不包含行)。

浏览器的 DOM 将隐式包装流浪 <tr>位于 <tbody> 。 (对于不这样做的浏览器,jQuery 会伪造它)

您需要写$('#table > tbody > tr') .

关于jquery - 为什么 $ ('#table > tr' ) 选择器不匹配? (始终返回 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10467503/

相关文章:

基本切换功能的 jQuery 代码重构

javascript - 目标 : querySelectorAll ("[data-something=${variableValue}]")

javascript - 使用 IFrame 在 jQuery 中进行事件传播

javascript - 解释为什么我需要在 Angular $timeout 中包装 highcharts jquery 事件以访问属性

javascript - jQuery 上下文菜单获取被单击的项目

javascript - 使用 Jquery 显示/隐藏两个 Div

jquery - 为什么这个 jQuery 选择器不起作用?

css - 使用 jquery 选择具有特殊 css 属性的元素

javascript - 在数组中包含 LIKE 多个值

javascript - 鼠标悬停后自动播放视频不起作用