示例:
<ul>
<li>
<a></a>
</li>
<li>
<a></a>
</li>
</ul>
我可以使用$('ul').children('li').get(0);
来获取列表项。如何使用.children('a')
遍历树?
我尝试了类似$('ul').children('li').get(0).children('a');
的内容,但这不起作用。
供将来参考:
li
做其他事情
到a
,这就是我尝试使用.children()
。这就是为什么.eq()是首选答案。现在我可以做类似的事情:
_load = function(index) {
image_get = thumbs.children('li').eq(index);
[...]
$(function() {
var img = $(new Image());
img
.load(function() {
[...]
}
.attr('src', image_get.children('a').attr('href'));
});
}
_load(0);
^^^ WIP。代码未完成。
答案 0 :(得分:11)
.get()
返回一个DOM元素。您可以将它包装回jQuery对象,如:
$($('ul').children('li').get(0)).children('a');
$('ul').children('li').eq(0).children('a');
修改强>
正如里德在下面的评论中所指出的,
$('ul').children('li').eq(0).children('a');
在语义上等同于更简洁:
$('ul > li:first-child > a');
使用单个选择器与上面相同。
答案 1 :(得分:4)
为什么不把它全部放在选择器中,让它为你完成所有工作:
$('ul li:first a')
这将为您的示例HTML中的第一个<a>
标记获取jQuery对象。
选择器逻辑的工作方式如下:查找所有ul标签,找到每个标签中的第一个li标签,然后获取每个第一个li标签中的所有标签。结果是jQuery选择,然后您可以将各种操作应用于。
答案 2 :(得分:1)
你可以这样做
$('ul li a:first');
http://jsfiddle.net/jasongennaro/yCAT6/
$('ul li a');
会返回该列表中的所有a
。
:first
仅过滤第一个。