2013-11-26 57 views
1

按照试图在jsfiddle中运行,我认为这应该工作,但它是返回空白。为什么这不返回元素?

这是例如HTML

<table id = "test"> 
    <tr><td>test</td><td>test</td></tr> 
    <tr><td>test</td><td>test</td></tr> 
    <tr><td>test</td><td>test</td></tr> 
</table> 

而我只是想对其运行该代码。

var x = $("#test").children("tr"); 
console.log(x); 

但它是返回没有在x中,而不是所有的tr元素。

任何想法?

我的最终目标是创建一个函数,它将遍历jquery所选表格中的每个tr和td,从而允许我为在线棋盘游戏“设置”div值。这是最好的方法吗?

回答

5

的问题是,

$("#test").children("tr"); 

相当于

$("#test > tr"); 

但大多数浏览器插入一个sorrounding tbody如果没有在表中,所以#test > tr不匹配任何元素,所以最好使用

$("#test tr"); 

或者如果你喜欢

$("#test").find("tr"); 
+0

你有一个类型。您需要将'#'添加到首选元素。 –

+0

你说得对,现在已经修好了,谢谢! –

+0

非常感谢。 –

1

使用本:

var x = $("#test").find("tr"); 
console.log(x); 
+3

这并不能解释为什么'$( “#TEST”)。儿童( “tr”)'不起作用。 –

1

您可以尝试使用.each() Fiddle

$("#test td").each(function() { 
    var x = $(this).text(); 
    console.log(x); 
}); 
相关问题