检查 <li> 是否在具有特定 class 的 ul 中

Check if <li> is last in ul that has specific class

我有一个像

这样的列表
<ul>
  <li class="tool"></li>
  <li class="tool"></li>
  <li class="tool"></li>
  <li class="tool"></li>
  <li class="example"></li>
</ul>

我正在尝试检查 $('li').is('.tool:last') 之类的东西,看看某个列表是否在列表的最后,我需要忽略 .example 一个,因此不能真正使用 :last-child 在这里,但由于某种原因,我没有得到想要的结果。如何检查列表是否在具有 class .tool 的列表中?

你可以得到最后一个tool元素,然后检查它是否是last-child:

var istoollastchild = $('li.tool:last').is(':last-child');

Working Demo

$('li.tool').is(':last-child');

您可以过滤它,例如:

var $lastLIsTool = $('ul li.tool').filter(function(){
    return !$(this).nextAll('li.tool').length
});

-DEMO-

您可以使用

 if (selected_object.is(current_object)) {
   ...    
}

使用此代码它会帮助你

<ul>
  <li class="tool">Not Last</li>
  <li class="tool">Not Last</li>
  <li class="tool"> Not Last</li>
  <li class="tool">Last</li>
  <li class="example">Not Last</li>
</ul>

<script>
    var lastLiWithTool = $('li.tool:last');
    $('li').click(function(){
        if ($(this).is(lastLiWithTool)) {
          alert("last li with tool");   
        }else{
        alert("not last li with tool"); 
        }
    })
</script>

演示:http://jsfiddle.net/8v10rx9u/