gpt4 book ai didi

javascript - jQuery .index(),将更改与参数混淆

转载 作者:行者123 更新时间:2023-11-30 17:07:49 24 4
gpt4 key购买 nike

http://learn.jquery.com/using-jquery-core/understanding-index/

也许我在上面的文章中遗漏了一些东西,但我在理解为什么当参数与 .index() 一起使用时索引号会改变它的方式时遇到了一些问题。

例如,用

<body> 
<button id="console2">consoleSection2</button>
<ul>
<div class="test"></div>
<li id="foo2">foo</li>
<li id="bar2" class="test">bar</li>
<li id="baz2">baz</li>
<div class="test"></div>
</ul>
<div id="last"></div>
</body>

如果我跑

console.log( 
"Index: " + $("#foo2").index()
);

我得到“索引:1”,而如果我运行

"索引:"+ $("#foo2").index("li")

我得到“索引:0”

为什么会变?对我来说,它会保持不变,因为“#foo2”已经在“li”元素中。

另外,为什么它作为索引会变为 0?那是因为它是第一个 ID 为“#foo2”的“li”实例吗?

http://jsfiddle.net/f88zxaxo/

最佳答案

当您将选择器字符串传递给 .index() 时,返回值指示第一个匹配元素的位置在包含 jQuery 对象的元素列表中。

没有争论,.index()告诉您元素在其兄弟元素中的 HTML 容器元素中的位置。

你从 $("#foo2").index() 得到 1因为“foo2”元素在包含 <ul> 的后代元素中位于位置 1 (顺便说一下,这是无效的标记)。但是,您从 $("#foo2").index("li") 返回 0因为 jQuery 对象只有一个元素,它是一个 <li>元素。如果你试过 $("#foo2").index("span") ,你会得到 -1。

关于javascript - jQuery .index(),将更改与参数混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27607079/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com