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/