2013-05-22 11 views
5

私は<span>のjQuery配列を持っています。その上にjQueryオブジェクトとして1つだけ追加して、追加のメソッドを追加できます。 $mySpans[2](文字列を返す)や$mySpans.get(2)(DOM要素を直接返します)のようなものです。インデックスを使用してjQuery配列から(DOMの代わりに)jQueryオブジェクトを返します

私は、これが動作することを知っている:

$($mySpans[2]).someJQueryMethod(...); 

...しかし、それは少し冗長です。これを行う正しい方法は何ですか?このよう

答えて

9

$myspans.eq(2).method(); 
+0

なぜこのメソッドは 'eq'と呼ばれましたか?それはひどい名前のようです。私は 'index'も存在することを知っていますが、それは間違いなく' indexOf'か何か – voithos

+1

'eq'か" equals "だったはずです。 'index'は全く別のことをします。もっと理にかなっていれば、通常の配列のように 'slice'を使うことができます。 – elclanrs

+0

'$ myspans"と "2"はどういう意味がありますか? 'index/indexOf'は伝統的にコレクションを検索してアイテムのインデックスを返すために使われていますが、' index'が使われなくても、より良い名前が見つかると思います。 – voithos

5

jsFiddle Demo

あなたはeqを使用したいしようとしています。そのインデックスでjQueryオブジェクトのラップされた要素が返されることに注意してください。一致が1つしかない場合は、0を使用する必要があります(2はセットの3分の1を返します)。

var $thirdMatch = $mySpans.eq(2);//== jQuery object with third match 
var htmlElement = $thirdMatch[0];//== actual dom element 
var matchedHtml = $thirdMatch.html();// call some jQuery API method 

読みやすさのために$variableNameを使用するjQueryのオブジェクトを格納するとき、それは一般的です。

+0

これは私が探していたものだ。ありがとう。 – brentonstrine

関連する問題