正如我从Jquery学习中所知,可以使用jquery的函数索引:
.index()
//没有参数.index(domObject)
//参数是一个dom对象.index(JqueryObject)
//参数是一个Jquery对象.index("selectorString")
//参数是一个选择器字符串我正在使用参数测试索引函数是一个选择器字符串。
html - >体:
<div class="name" id="id1">
<h2>Z</h2>
<h2>X</h2>
</div>
<div class="name" id="id2">
<h2>A</h2>
<h2>B</h2>
</div>
Jquery脚本:
var index1 = $('.name').index("#id1");
var index2 = $('.name').index("#id2");
alert(index1);
alert(index2);
结果为:0表示index1(正确),-1表示index2(不正确)。
所以,问题是:为什么我无法获得div#id2的正确索引值?
jsfiddle:http://jsfiddle.net/GhPxD/60/
答案 0 :(得分:3)
这里没有错误,API只是......很奇怪。 Here's the documentation:
如果在元素集合和DOM元素上调用.index()或 传入jQuery对象,.index()返回一个指示的整数 传递元素相对于原始集合的位置。
如果选择器字符串作为参数传递,则.index()返回一个 整数,指示jQuery中第一个元素的位置 相对于选择器匹配的元素的对象。如果 找不到元素,.index()将返回-1。
你想要的是
$('#id2').index(".name");
让这个功能以不同的方式运行是非常令人困惑的IMO。
答案 1 :(得分:0)
答案 2 :(得分:-1)
statement 1 : var index1 = $('.name').index("#id1");
statement 2 : var index2 = $('.name').index("#id2");
声明1
1.如您所知,当您在jquery中使用任何选择器时,它会返回第一个匹配元素
2.现在你试图找到index("#id1")
的索引,以便它在索引0处成功找到,因此它return 0
声明2
1.如您所知,当您在jquery中使用任何选择器时,它会返回第一个匹配元素
2.现在您尝试找到index("#id2")
的索引,因此无法找到#id2
的任何子元素,因此reurn -1