Javascript 获取元素的索引(不包括具有特定类的元素)?

Javascript 获取元素的索引(不包括具有特定类的元素)?,javascript,jquery,html,jquery-selectors,Javascript,Jquery,Html,Jquery Selectors,我有一个列表,它可能有也可能没有一个不可选择的列表项动态添加到其中。如下所示(包括不可选择的列表项): 排除第一个非包含性元素,即listLabel。是否可以不将其包括在索引计数中?我尝试过使用.not()和类选择器等,但它返回的值与往常一样(3而不是2)或-1您需要选择所有li,除了。listLabel使用:not()选择器 $(“.listItem”)。单击(函数(){ var index=$(this.nexist(“ul”).find(“li:not(.listLabel)”).ind

我有一个列表,它可能有也可能没有一个不可选择的列表项动态添加到其中。如下所示(包括不可选择的列表项):


排除第一个非包含性元素,即
listLabel
。是否可以不将其包括在索引计数中?我尝试过使用
.not()
和类选择器等,但它返回的值与往常一样(3而不是2)或-1

您需要选择所有
li
,除了
。listLabel
使用
:not()
选择器

$(“.listItem”)。单击(函数(){
var index=$(this.nexist(“ul”).find(“li:not(.listLabel)”).index($(this.parent());
控制台日志(索引);
});

  • 作出选择:
  • 全部的
  • 一个
  • 两个

您可以这样做
parentIndex=$(“.js-sppmg_uuli”).index($(this.parent())

这将为您提供类为
.js-sppmg\uuu li

$('li.js-sppmg__li > span').on('click', function(){
    var parentIndex = $(this).parent().index(); 
     parentIndex = parentIndex-1;
     console.log(parentIndex);

});
演示

$(“.js listItem”)。单击(函数(){
parentIndex=$(.js-sppmg_uuli”).index($(this.parent());
console.log(parentIndex);
});

  • 作出选择:
  • 全部的
  • 一个
  • 两个

我认为您应该在
li.js-sppmg\uu li>span
上应用单击事件,而不是
。列出li

$('li.js-sppmg__li > span').on('click', function(){
    var parentIndex = $(this).parent().index(); 
     parentIndex = parentIndex-1;
     console.log(parentIndex);

});

通过使用
index()
并为其提供一个选择器来查找要在其中检索索引的元素组,您可以实现所需的功能。试试这个:

$('.js listItem')。单击(函数(){
var index=$(this.index('.js list.js listItem');
控制台日志(索引);
});

  • 作出选择:
  • 全部的
  • 一个
  • 两个
检查一下

$('.js list.js-sppmg\uu li')。在('click',function()上{
var ntheelement=$(this.index())
如果(n元素==3)
警报(元素);
})

  • 作出选择:
  • 全部的
  • 一个
  • 两个

.closest('.listItem')
而不是
.parent()
这很有效-谢谢!我忘了将.parent()添加到final.index()中。
$('li.js-sppmg__li > span').on('click', function(){
    var parentIndex = $(this).parent().index(); 
     parentIndex = parentIndex-1;
     console.log(parentIndex);

});