Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在类中找不到元素的索引_Javascript_Jquery - Fatal编程技术网

Javascript 在类中找不到元素的索引

Javascript 在类中找不到元素的索引,javascript,jquery,Javascript,Jquery,我有3个选择元素,类为“status”,如下所示: <select class = "status"> <option value ='completed'>Completed></option> <option value = 'Inprogress'>In progress</option> </select> <select class = "status"> <opti

我有3个选择元素,类为“status”,如下所示:

<select class = "status">
    <option value ='completed'>Completed></option>
    <option value = 'Inprogress'>In progress</option>
</select>
<select class = "status">
    <option value ='completed'>Completed></option>
    <option value = 'Inprogress'>In progress</option>
</select>
<select class = "status">
    <option value ='completed'>Completed></option>
    <option value = 'Inprogress'>In progress</option>
</select>
但是我找不到类中已更改的select标记的索引。请帮助..

使用
$(此)

$(“.status”).change(函数(){
console.log($(this.index())
})

已完成>
进行中
已完成>
进行中
已完成>
进行中

最好在旁边添加其他类

<select class = "status class1">
    <option value ='completed'>Completed></option>
    <option value = 'Inprogress'>In progress</option>
</select>
<select class = "status class2" >
    <option value ='completed'>Completed></option>
    <option value = 'Inprogress'>In progress</option>
</select>

已完成>
进行中
已完成>
进行中

$(“.status”).change(function(){if($(this).is(.class1”))})

代码将应用于任何
.status
元素更改。在JS中,
始终引用触发事件的当前元素。因为在这种情况下,这将是一个单一的项目,因此不会有一个索引本身。但是在JQuery中,您将使用
index()
。我建议这样写,这样您就可以在需要时使用事件委托

$(“.status”).on('change',function(){
log($(this));
log($(this.index());
});

已完成>
进行中
已完成>
进行中
已完成>
进行中

为什么需要索引?您可以使用
this
,即
$('.status')直接引用元素。在('change',function(){console.log(this)})
上,我尝试了'this'参数,它不断给我一个错误,我认为可能有一个DOM方法可以正确地执行此操作。非常感谢你,菲尔!我会使用
$(this.index('.status')
将范围限制在问题中的元素,有很多方法可以捕获索引。谢谢你的选择。