我正在玩一些使用原始html和JQuery的想法.我做的一件事是创建一个包含一组行的表元素.
<table id="MyTable" >
<tr>
<td>Title</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>3</td>
</tr>
<tr>
<td>4</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
但是,当我在FireFox + Firebug,IE8开发人员工具栏或Google Chrome JavaScript调试器中查看代码时......所有这些代码都显示了围绕所有tr节点的tbody元素.
我并不反对这种情况......但这是标准行为吗?
我无法理解为什么以下选择器按预期工作(即获取td
):
table tr td
Run Code Online (Sandbox Code Playgroud)
但这个没有:
table > tr > td
Run Code Online (Sandbox Code Playgroud)
它td
是后代tr
,后者又是后代table
,但他们也是彼此的孩子.因此,我认为>
选择器也可以工作.
我做了两个小提琴:
为什么>
选择器不在这里工作?
HTML代码:
<table id='table'>
<tr>
<td>..</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
使用jquery的js代码:
var l1 = $('#table > tr').length;
var l2 = $('#table tr').length;
alert(l1+','+l2);?
Run Code Online (Sandbox Code Playgroud)
结果:
0,1
Run Code Online (Sandbox Code Playgroud)
为什么第一个#table > tr
得到0?
您可以从这里看到现场演示:http://jsfiddle.net/Freewind/PmsFQ/