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

时间:2018-06-26 06:59:10

标签: javascript jquery html css

我有一个清单

<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');

4 个答案:

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