这是我的代码:
if ($('#fotosingola_6985') instanceof jQuery) {
console.log($('#fotosingola_6985').attr('id'));
console.log($('#fotosingola_6985').index(".classObj"));
}
好吧:这段代码的输出是:
fotosingola_6985
-1
怎么可能?jQuery 规范说如果选择器字符串作为参数传递,.index() 返回一个整数,指示原始元素相对于选择器匹配的元素的位置。如果未找到该元素,.index() 将返回 -1。
但是找到了元素(是的,它是一个 jQuery 元素,我制作了控件):实际上它返回了它的 id。
周围的HTML:
<div id="exp-gallery-dettaglio-slideshow-overflowed">
<a href="javascript:void(0);" class="classObj" id="fotosingola_6529"> </a>
<a href="javascript:void(0);" class="classObj" id="fotosingola_6985"> </a>
<a href="javascript:void(0);" class="classObj" id="fotosingola_6990"> </a>
<a href="javascript:void(0);" class="classObj" id="fotosingola_6998"> </a>
<a href="javascript:void(0);" class="classObj" id="fotosingola_6912"> </a>
</div>
真正的奇怪行为:
如果我做 :
console.log($('.classObj').index('#fotosingola_6985'));
它返回-1。但是,如果我这样做:
console.log($('.classObj').index($('#fotosingola_6985')));
它返回 1,这是正确的。这怎么可能?