jQuery .index() 返回意外值

标签 jquery

我手头上有一个有趣的情况。也许是因为我工作这么晚而导致大脑放屁,但我在 .index()

上发生了最奇怪的事情

Here is a jsfiddle

问题在于,当触发选择框更改事件处理程序时,它会尝试查找当前选择框的索引。如果页面上唯一的元素是选择框,则它返回的索引是正确的。但是,如果还有其他元素,即使它们不是选择框,.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/

相关文章:

javascript - 我想在jQuery和css中为我的菜单项添加一个子元素

php - 使用单个输入框 Ajax 搜索多个参数

javascript - 为其他幻灯片保留初始动画

jquery 不同数组

javascript - 如果文本包含 :,则替换链接和文本

javascript - 针对第 0 行问题从数据源请求未知参数 '0'

javascript - 如何在浏览器上播放自定义提示音?

javascript - 如何修改 bootstrap carousel javascript 文件,使其可以触发此功能?

javascript - 不透明度过渡适用于淡出,但不适用于淡入

javascript - jQuery:自动执行插件?