我手头上有一个有趣的情况。也许是因为我工作这么晚而导致大脑放屁,但我在 .index()
问题在于,当触发选择框更改事件处理程序时,它会尝试查找当前选择框的索引。如果页面上唯一的元素是选择框,则它返回的索引是正确的。但是,如果还有其他元素,即使它们不是选择框,.index()
似乎也会根据页面上的总元素返回索引,而不仅仅是 $('选择')
元素。
这是我的事件处理程序:
$('select').change(function() {
alert(
'$(\'select\').length: ' + $('select').length + "\n" +
'$(\'select\').last().index(): ' + $('select').last().index() + "\n" +
'$(this).index(): ' + $(this).index());
});
如果出于某种原因这是正确的行为,有人可以解释为什么吗?
提前致谢。
最佳答案
index
函数返回元素相对于直接父元素的从零开始的位置,默认情况下标签名称并不重要。使用 .index("select")
仅考虑 select
标记。
关于jQuery .index() 返回意外值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13784695/