Javascript 如何在jQuery中捕获索引
我想使用Javascript 如何在jQuery中捕获索引,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我想使用index()方法获取元素的索引。我准备了这段代码,但是这个函数总是返回-1。我想了解: 为什么此函数返回-1 如何修复它以获得正确的索引 如果你有什么意见,请告诉我 谢谢 const$days=$(this.find('.day'); $(“#calendar.day”)。在(“单击”,函数(){ log(“index”,$days.index(this)); }); td{ 填充:10px; 边框:纯黑1px; } 桌子{ 边界塌陷:塌陷; } 1. 2. 3. 4. 5. 6.
index()
方法获取元素的索引。我准备了这段代码,但是这个函数总是返回-1
。我想了解:
-1
const$days=$(this.find('.day');
$(“#calendar.day”)。在(“单击”,函数(){
log(“index”,$days.index(this));
});代码>
td{
填充:10px;
边框:纯黑1px;
}
桌子{
边界塌陷:塌陷;
}
1.
2.
3.
4.
5.
6.
7.
当您构建.day
元素的jQuery列表时,它应该是
const $days = $("#calendar .day");
在全局级别,这个
将是对窗口的引用,jQuery将无法使用它。因此,您得到了-1
,这意味着元素不在列表中。当您构建.day
元素的jQuery列表时,它应该是
const $days = $("#calendar .day");
在全局级别,这个
将是对窗口的引用,jQuery将无法使用它。因此,您得到了-1
,这意味着该元素不在列表中。问题是因为第一行中的此
引用了窗口
元素,因此查找('.days')
不返回任何内容。因此索引总是-1
要解决此问题,只需在单击的元素上使用index()
:
const$days=$(“#calendar.day”)。在(“单击”,函数(){
log(“index”,$(this.index());
});代码>
td{
填充:10px;
边框:纯黑1px;
}
桌子{
边界塌陷:塌陷;
}
1.
2.
3.
4.
5.
6.
7.
问题是因为第一行中的这个引用了窗口
元素,所以find('.days')
不返回任何内容。因此索引总是-1
要解决此问题,只需在单击的元素上使用index()
:
const$days=$(“#calendar.day”)。在(“单击”,函数(){
log(“index”,$(this.index());
});代码>
td{
填充:10px;
边框:纯黑1px;
}
桌子{
边界塌陷:塌陷;
}
1.
2.
3.
4.
5.
6.
7.
无需使用jQuery即可完成此操作
let index = [...this.parentElement.childNodes].indexOf(this);
不需要使用jQuery就可以做到这一点
let index = [...this.parentElement.childNodes].indexOf(this);
当您调用$(this.find()
时,您期望这个是什么?“为什么这个函数返回-1”->控制台.log(this,$days.length)
当您调用$(this.find()
,您期望这个是什么?”为什么这个函数返回-1”->控制台.log(this,$days.length)