我有以下代码:
$('.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
任何想法?
答案 0 :(得分:1)
您的代码在语法上不正确,obj
是tr
元素,因此请将该元素引用与子选择器一起使用,如
$('.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
元素,其中包含课程odd
或even
:
$('.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);
});