2013-05-22 24 views
5

Bir jQuery dizisi <span> s var ve bunlardan yalnızca bir tane jQuery nesnesi almak istiyorum, böylece ek yöntemler ekleyebiliyorum. $mySpans[2] (bir dizgi döndüren) veya $mySpans.get(2) gibi bir şey (doğrudan DOM öğesini döndürür).jQuery nesnesinden jQuery nesnesine (DOM yerine) jQuery dizisini döndürerek döndürme

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

... ama biraz gereksiz görünüyor:

Bu çalışır biliyorum. Bunu yapmanın doğru yolu nedir? Bunun gibi

cevap

9

:

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

Bu yöntem neden "eq"? Bu korkunç bir isim gibi görünüyor. Biliyorum 'index' de var, ama bu muhtemelen 'indexOf' ya da – voithos

+1

'eq' veya" equals "bir şey olmalıydı. 'index' tamamen farklı bir şey yapar. Eğer daha mantıklı olursa, normal bir dizi gibi 'dilimi 'kullanabilirsiniz. – elclanrs

+0

"$ myspans" 2'ye eşittir nasıl bir anlam ifade eder? İndeks/indexOf' geleneksel olarak bir koleksiyon aramak ve bir öğenin endeksini döndürmek için kullanılır, ancak 'index' kullanılmasa bile, sadece daha iyi bir isim bulunabileceğini düşünüyorum. – voithos

5

jsFiddle Demo

Sen eq kullanmak istediğiniz olacak. Bu dizinde jQuery nesnesi sarılmış öğeyi döndüreceğine dikkat edin, böylece yalnızca bir eşleşme varsa 0 kullanmalısınız (bu, kümenin üçüncüsünü döndürecektir). okunabilirliği amaçlı $variableName kullanmak jQuery nesneleri saklarken

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 

genel bir uygulamadır.

+0

seçtiğim gibi okudum. Teşekkürler. – brentonstrine