得到一个孩子的第n个孩子

时间:2014-03-26 06:55:59

标签: javascript jquery

我有以下代码:

$('.odd, .even').each(function(i, obj) {
    $(obj:nth-child(3));
});

我想知道为什么这会给我一个错误?我想得到一个td的第3个孩子。 具有以下结构:

<tr class="odd">
        <td class=" sorting_1"><input name="pid" type="checkbox" value="3350360"></td>
        <td class=" ">bravejournal</td>

        <td class=" ">
            <a href="http://anonym.to/?http://gerrsad123yymqe.bravejournal.com" target="_blank">http://gerrsad123yymqe.bravejournal.com</a>

        </td>

    </tr>

在最终结果中,我基本上想得到以下值:

http://gerrsad123yymqe.bravejournal.com

任何想法?

4 个答案:

答案 0 :(得分:1)

您的代码在语法上不正确,objtr元素,因此请将该元素引用与子选择器一起使用,如

$('.odd, .even').each(function(i, obj) {
    $(obj).children(':nth-child(3)');
});

答案 1 :(得分:1)

如果总是第三,你可以使用:eq(2)

$('.odd, .even').each(function(i, obj) {
    $('td:eq(2)',this).find('a').attr('href');
});

如果总是最后一个,您可以使用:last

$('td:last',this).find('a').attr('href'); // or .text() if you want text inside <a>

答案 2 :(得分:1)

您需要在此使用.find(),因为obj目前是您的tr元素,其中包含课程oddeven

$('.odd, .even').each(function(i, obj) {
    $(obj).find('td:nth-child(3)');
});

您可以使用nth-child

代替.eq() m
$('.odd, .even').each(function(i, obj) {
    $(obj).find('td').eq(2);
});

:eq()选择器:

$('.odd, .even').each(function(i, obj) {
    $(obj).find('td:eq(2)');
});

请注意,:eq().eq()是基于0的索引,因此您需要在此处使用2来获取第三个td。

答案 3 :(得分:1)

你可以这样做:

$('.odd, .even').each(function() {
  var td = $(this).find('td').eq(2);
});