我有一个清单
<ul class="mtree default">
<li class="cat-item cat-item-224 cat-parent mtree-node mtree-open">
<a href="#" style="cursor: pointer;">Lidingö</a>
<ul class="children mtree-level-1">
<li class="cat-item cat-item-444">
<a href="#" style="cursor: pointer;">Direktåtkomst Förrådslänga</a>
<ul class="children mtree-level-2">
<li class="cat-item cat-item-504">
<a>7 kvm (1199 kr/mån)</a>
</li>
</ul>
</li>
<li class="cat-item cat-item-314">
<a href="#" style="cursor: pointer;">Hissplan</a>
<ul class="children mtree-level-2">
<li class="cat-item cat-item-674">
<a href="#">0,5 kvm (349 kr/mån)</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
您知道如何找到最后一个ul .cat-item-444和cat-item-314,然后选择 7 kvm(1199 kr /mån)和 0.5 kvm(349 kr /mån)在一个jquery代码中?所选标签应具有.css('border','1px solid red');
答案 0 :(得分:3)
要实现此目的,您可以使用:last-child
选择器在每个子级别li
中找到最后一个ul
,如下所示:
$('.cat-item > ul li ul li:last-child').addClass('foo');
.foo {
border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="mtree default">
<li class="cat-item cat-item-224 cat-parent mtree-node mtree-open">
<a href="#" style="cursor: pointer;">Lidingö</a>
<ul class="children mtree-level-1">
<li class="cat-item cat-item-444">
<a href="#" style="cursor: pointer;">Direktåtkomst Förrådslänga</a>
<ul class="children mtree-level-2">
<li class="cat-item cat-item-504">
<a>7 kvm (1199 kr/mån)</a>
</li>
</ul>
</li>
<li class="cat-item cat-item-314">
<a href="#" style="cursor: pointer;">Hissplan</a>
<ul class="children mtree-level-2">
<li class="cat-item cat-item-674">
<a href="#">0,5 kvm (349 kr/mån)</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
如果您仅想在第二级中获取li
,并且有多个较低级别,则需要添加其他子选择器,例如{{1} },但在提供所提供的HTML的情况下,上述方法仍然可以使用。
还要注意在.cat-item > ul > li > ul > li:last-child
上使用addClass()
。这是首选,因为您真的不想直接在JS中放置任何样式规则。它们属于CSS。
答案 1 :(得分:1)
关于动态版本:)
$(".cat-item li:not(:has('ul')) a").addClass('foo');
.foo {
border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="mtree default">
<li class="cat-item cat-item-224 cat-parent mtree-node mtree-open">
<a href="#" style="cursor: pointer;">Lidingö</a>
<ul class="children mtree-level-1">
<li class="cat-item cat-item-444">
<a href="#" style="cursor: pointer;">Direktåtkomst Förrådslänga</a>
<ul class="children mtree-level-2">
<li class="cat-item cat-item-504">
<a>7 kvm (1199 kr/mån)</a>
</li>
</ul>
</li>
<li class="cat-item cat-item-314">
<a href="#" style="cursor: pointer;">Hissplan</a>
<ul class="children mtree-level-2">
<li class="cat-item cat-item-674">
<a href="#">0,5 kvm (349 kr/mån)</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
答案 2 :(得分:0)
尝试一下:
$('.children li.cat-item').each(function() {
console.log($(this).find('ul:last-child li a').text());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="mtree default">
<li class="cat-item cat-item-224 cat-parent mtree-node mtree-open">
<a href="#" style="cursor: pointer;">Lidingö</a>
<ul class="children mtree-level-1">
<li class="cat-item cat-item-444">
<a href="#" style="cursor: pointer;">Direktåtkomst Förrådslänga</a>
<ul class="children mtree-level-2">
<li class="cat-item cat-item-504">
<a>7 kvm (1199 kr/mån)</a>
</li>
</ul>
</li>
<li class="cat-item cat-item-314">
<a href="#" style="cursor: pointer;">Hissplan</a>
<ul class="children mtree-level-2">
<li class="cat-item cat-item-674">
<a href="#">0,5 kvm (349 kr/mån)</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
答案 3 :(得分:0)
使用build.gradle
:
.last()
$('.cat-item-444 ul li').last().css('border','1px solid red');
$('.cat-item-314 ul li').last().css('border','1px solid red');
debugger