jQuery .index(),将更改与参数混淆
jQuery .index(), confusing changes with argument
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。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 使用Express捕获参数
- 参数变量出现ngTable指令问题
- AngularJS:我可以跳过函数参数回调吗
- Emberjs应用程序加载在除Index之外的所有路由上
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 要求未定义JS回调参数
- 我的jQuery插件参数没有正确启动,遇到了问题
- 分析高度属性时出现意外值{{specs.height}}.index.html
- 主干模板:index.jst.eco到index.jst.ejs
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- jquery设置为使用参数运行
- Javascript”;类“;带有参数的扩展
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 它是如何在cordova插件对话框中使用参数按钮Index的
- 你能写一些javascript,根据URL参数加载两个独立的index.html页面吗
- 角度JS:$index类似过滤器的参数
- jQuery .index(),将更改与参数混淆
- AngularJS内部ng重复未处理$index$函数参数中的父级
- 将$index和$data作为参数传递给单击处理程序