簡體   English   中英

如何使用jquery在每個li中找到最后一個ul?

[英]How to find the last ul in every li using jquery?

我有一個清單

<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>

你知道我怎樣才能找到 .cat-item-444 和 cat-item-314 的最后一個 ul 然后在一個 jquery 代碼中選擇7 kvm (1199 kr/mån)0,5 kvm (349 kr/mån) 選定的標簽應該有 .css('border', '1px solid red');

為此,您可以使用: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>

如果你想要得到的li在第二級,並有多個較低水平,那么你就需要添加額外的子選擇器,類似.cat-item > ul > li > ul > li:last-child ,但鑒於提供的 HTML,上述內容將起作用。

還要注意在css()使用addClass() css() 這是首選,因為您真的不想將任何樣式規則直接放在 JS 中; 它們屬於 CSS。

動態版本怎么樣:)

 $(".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>

嘗試這個 :

 $('.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>

使用.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM