3

可能重复:
如何在元素中查找元素

我正在运行一个循环来遍历每个表格行。我想访问每个表格行中的元素。我该怎么做呢?

桌子:

<table>
<tr> <td class="a">x</td> <td class="b">x</td> <td class="c">x</td> </tr>
<tr> <td class="a">x</td> <td class="b">x</td> <td class="c">x</td> </tr>
<tr> <td class="a">x</td> <td class="b">x</td> <td class="c">x</td> </tr>
<tr> <td class="a">x</td> <td class="b">x</td> <td class="c">x</td> </tr>
</table>

代码不起作用:

$("tr").each(function(index) {

    // get class a text
    $(this + " td.a").text();

    // get class b text
    $(this + " td.b").text();

    // get class c text
    $(this + " td.c").text();

});
4

6 回答 6

8

您可以使用children方法:

$("tr").each(function(index) {

    // get class a text
    var text1 = $(this).children("td.a").text();

    // get class b text
    var text2 = $(this).children("td.b").text();

    // get class c text
    var text2 = $(this).children("td.c").text();

});
于 2012-05-15T15:43:49.627 回答
6

jQuery 函数的第二个参数是context

$("td.a", this).text();

这将找到所有td.a属于this.

于 2012-05-15T15:44:57.627 回答
3

如果您“正常”访问它(即不使用 jQuery),您可以获取该cells属性。

var trs = document.getElementsByTagName('tr'), l = trs.length, i, tds;
for( i=0; i<l; i++) {
    tds = trs[i].cells;
    // do stuff with tds
]
于 2012-05-15T15:44:29.860 回答
3

如果您需要$(this)多次调用,则应将其分配给局部变量以提高性能。有关更多信息,请参阅此帖子:

jQuery 中的 $this 与 $(this)

最后,您可以使用.find()您想要实现的目标:

$("tr").each(function(index) {

    var $this = $(this);

    // get class a text
    $this.find("td.a").text();

    // get class b text
    $this.find("td.b").text();

    // get class c text
    $this.find("td.c").text();

});
于 2012-05-15T15:45:15.177 回答
1
$("tr").each(function(index) {

    // get class a text
    $("td.a", this).text();

    // get class b text
    $("td.b", this).text();

    // get class c text
    $("td.c", this).text();

});
于 2012-05-15T15:46:35.767 回答
0
$("tr").each(function() {
    var $this = $(this),
        aText = $this.find('.a').text(),
        bText = $this.find('.b').text(),
        cText = $this.find('.c').text();
});
于 2012-05-15T15:45:07.113 回答