[英]How to find the last ul in every li using jquery?
I have a list我有一个清单
<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>
Do you know how can I find the last ul of .cat-item-444 and cat-item-314 then select 7 kvm (1199 kr/mån) and 0,5 kvm (349 kr/mån) in one jquery code?你知道我怎样才能找到 .cat-item-444 和 cat-item-314 的最后一个 ul 然后在一个 jquery 代码中选择7 kvm (1199 kr/mån)和0,5 kvm (349 kr/mån) ? The selected tag should have .css('border', '1px solid red');
选定的标签应该有 .css('border', '1px solid red');
To achieve this you can use the :last-child
selector to find the last li
within each sub-level ul
, like this:为此,您可以使用
:last-child
选择器来查找每个子级别ul
的最后一个li
,如下所示:
$('.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>
If you only want to get the li
in the second level, and there are multiple lower levels then you'd need to add additional child selectors, something like .cat-item > ul > li > ul > li:last-child
, but the above will work given the provided HTML.如果你只想要得到的
li
在第二级,并有多个较低水平,那么你就需要添加额外的子选择器,类似.cat-item > ul > li > ul > li:last-child
,但鉴于提供的 HTML,上述内容将起作用。
Also note the use of addClass()
over css()
.还要注意在
css()
使用addClass()
css()
。 This is preferred as you don't really want to put any styling rules directly in JS;这是首选,因为您真的不想将任何样式规则直接放在 JS 中; they belong in CSS.
它们属于 CSS。
what about a dynamic version :)动态版本怎么样:)
$(".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>
Try this :尝试这个 :
$('.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>
Use .last()
:使用
.last()
:
$('.cat-item-444 ul li').last().css('border','1px solid red'); $('.cat-item-314 ul li').last().css('border','1px solid red'); debugger
<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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.