【问题标题】:How to find the last ul in every li using jquery?如何使用 jquery 找到每个 li 中的最后一个 ul?
【发布时间】:2018-06-26 06:59:09
【问题描述】:

我有一个清单

<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 然后选择 7 kvm (1199 kr/mån)0,5 kvm (349 kr/mån) 在一个 jquery 代码中?选中的标签应该有 .css('border', '1px solid red');

【问题讨论】:

标签: javascript jquery html css


【解决方案1】:

为此,您可以使用:last-child 选择器在每个子级别ul 中查找最后一个li,如下所示:

$('.cat-item &gt; 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 &gt; ul &gt; li &gt; ul &gt; li:last-child,但是鉴于提供的 HTML,以上将起作用。

还要注意addClass() 的使用超过css()。这是首选,因为您真的不想在 JS 中直接放置任何样式规则;它们属于 CSS。

【讨论】:

  • 你太棒了
【解决方案2】:

动态版本怎么样 :)

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

【讨论】:

    【解决方案3】:

    试试这个:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-10
        • 2011-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多