1

これは私のコードです:

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">&nbsp;</a>
    <a href="javascript:void(0);" class="classObj" id="fotosingola_6985">&nbsp;</a>
    <a href="javascript:void(0);" class="classObj" id="fotosingola_6990">&nbsp;</a>
    <a href="javascript:void(0);" class="classObj" id="fotosingola_6998">&nbsp;</a>
    <a href="javascript:void(0);" class="classObj" id="fotosingola_6912">&nbsp;</a>
</div>

REAL奇妙な動作:

私が行った場合 :

console.log($('.classObj').index('#fotosingola_6985')); 

-1 を返します。しかし、もしそうなら:

console.log($('.classObj').index($('#fotosingola_6985'))); 

これは正しい 1 を返します。これはどのように可能ですか?

4

3 に答える 3

3

要素は兄弟であるため、次のようにコーディングできます。

$('#fotosingola_6985').index();

indexjQuery オブジェクトまたは DOM 要素を受け入れます。

要素のコレクションに対して .index() が呼び出され、DOM 要素または jQuery オブジェクトが渡された場合、.index() は、元のコレクションに対する渡された要素の位置を示す整数を返します。

var $elem = $('#fotosingola_6985');
$('.classObj').index($elem)

http://jsfiddle.net/6sDpx/

于 2012-10-04T08:20:45.327 に答える
0

コピーしました-コードを貼り付けて、1代わりに表示します-1

他のどこかに問題があります。

使用する$('#fotosingola_6985').index()

の証拠

于 2012-10-04T08:25:32.167 に答える
0

あなたが提供したコードは良いです。

フィドルを参照してください:http://jsfiddle.net/sP7TJ/1/

どのバージョンのjQueryを使用していますか?また、使用してみてください:

if ($('#fotosingola_6990') instanceof jQuery) {
    console.log($('#fotosingola_6990').attr('id'));
    console.log($('#fotosingola_6990').index(".classObj"));
}

受け取ったものを教えてください。-1または-2?

于 2012-10-04T08:26:04.383 に答える