index = 5;
alert($('ul li:eq(index) a',context).html());
このスクリプトは : を警告します"Null"が、次のように変更すると:
alert($('ul li:eq(5) a',context).html()); // it works
では、このスクリプトの何が問題なのですか?
index = 5;
alert($('ul li:eq(index) a',context).html());
このスクリプトは : を警告します"Null"が、次のように変更すると:
alert($('ul li:eq(5) a',context).html()); // it works
では、このスクリプトの何が問題なのですか?
alert($('ul li:eq('+index+') a',context).html());
'ul li:eq(index) a'結果のセレクターを使用すると、同じであるからです'ul li:eq(index) a'。
しかし'ul li:eq(' + index + ') a'、結果のセレクターのような文字列連結を使用すると'ul li:eq(5) a'、JS インタープリターがindex変数の値を置き換えて新しい文字列を作成するためです。
文字列ではなく、変数値を使用する必要がありindexます...
index = 5;
alert($('ul li:eq(' + index + ') a',context).html());
はるかに読みやすく、少し高速なバージョンは次のとおりです。
contextDOM ノードの場合:
$(context).find('ul li').eq(index).find('a').html()
contextjQuery オブジェクトの場合:
context.find('ul li').eq(index).find('a').html()