我有这种类型的HTML
<div id='foo'>
<ol>
<li>
<a/>
<a/>
<ol><li><a/><a/><a/></li></ol>
</li>
<li>
<a/>
<a/>
<ol><li><a/><a/><a/></li></ol>
</li>
<li>
<a/>
<a/>
<ol><li><a/><a/><a/></li></ol>
</li>
</ol>
</div>
如何在每个第一级'li'中选择最后一个'a'标记?我尝试使用:最后但我只得到最后一个'a'。注意我不希望嵌套在'ol'中的'a'元素嵌套。 I.E.选择器应该产生3'a'标签。任何提示或示例都会很棒!感谢。
答案 0 :(得分:3)
$('#foo > ol > li > a:last-of-type');
您还必须在li和a之间使用子选择器,否则它将返回所有作为最后子项的元素。
jsFiddle示例:http://jsfiddle.net/48uQM/3/
更新了我使用红色背景颜色的答案,因此更容易看到。
正如评论中所提到的,这不适用于IE8或更早版本或任何不支持的浏览器:last-of-type
在IE8和旧浏览器中工作是另一种解决方案
$(document).ready(function() {
$li = $('#foo > ol > li');
$li.each(function () {
$a = $(this).find(">a");
$a.filter(":last").addClass('last');
});
});
答案 1 :(得分:2)
答案 2 :(得分:1)
$('#foo > ol > li > a').filter(function(){
return !$(this).next('a').length
})
答案 3 :(得分:0)
jQuery('#foo>ol>li a:last-child');
将为您提供第一级li元素中的最后一个标记
等