为什么这不返回任何元素?

时间:2013-11-26 19:59:15

标签: javascript jquery

根据尝试在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值“设置”为在线棋盘游戏。这是最好的方法吗?

3 个答案:

答案 0 :(得分:5)

问题在于

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

相当于

$("#test > tr");

但大多数浏览器会在表格中没有tbody时插入#test > tr,因此$("#test tr"); 与任何元素都不匹配,因此最好使用

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

或者如果您愿意

{{1}}

答案 1 :(得分:1)

使用它:

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

答案 2 :(得分:1)

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

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