2010-03-15 20 views
26

Temel olarak basit bir liste yapıyorum ve listedeki öğelerden biri seçildi. Bunu, seçmek istediğim öğeye uygulanan "seçili" bir sınıfa sahip olmakla gerçekleştiriyorum. Bu listeyi geçecek ileri ve geri hareket eden iki düğmem var. Bununla birlikte, kullanıcı listedeki ilk veya son öğeye ulaştığında, bir posta göndermek istiyorum. Sıkıştığım yer burası, şu an seçili olan öğenin ilk veya son olmadığını belirleme konusunda sorun yaşıyorum.jQuery ile DOM eşitliği nasıl kontrol edilir?

Basit Örnek:

if (jQuery('#list p.selected') == jQuery('#list p:last-child')) 
    //do post back 

Ancak bu mantık yanlış döndürüyor:

<div id="list"> 
    <p>item 1</p> 
    <p>item 2</p> 
    <p class="selected">item 3</p> 
</div> 

kullanıcı Ben buna benzer bir şey kontrol ediyorum, bu noktada bir sonraki düğmeye basar diyelim Bu bana yanlış yöne yaklaştığımı düşünmeme yol açıyor.

JQuery'yi kullanarak bu tür bir mantığı kontrol etmenin en iyi yolu nedir?

+0

Sorunuz için arama yaparak deneyin: http://stackoverflow.com/questions/2436966/how-would-you-compare-jquery – PetersenDidIt

+0

-objects yaptım ve jQuery nesneleri özellikle ile ilgilenmiyorum. İstediğim, jQuery'yi kullanarak DOM eşitliğini kontrol etmektir. Belki de aynıdır, ancak DOM için sorguladığınızda jQuery nesnelerinin örneklendiği varsayılır ve ayrı ayrı ele alınır. – Joseph

+0

jQuery nesneleri, DOM nesnelerinin sadece dizisidir ve bunlar üzerinde daha fazla eylemi önceden yapabilir. – PetersenDidIt

cevap

37

Mat gösterilen, ya da sadece indeks operatörü

if($("#list p.selected")[0] == $("#list p:last-child")[0])... 

bu nadiren jQuery ile ihtiyaç vardır ile olduğu gibi size jquery nesneleri karşılaştırabilirsiniz rağmen. is daha iyi bir yol var!

if($("#list p.selected").is(":last-child")).... 

veya yuvarlak, daha okunabilir başka yolu

if($("#list p:last-child").is(".selected")).... 
+0

Aslında bunu yaptım ama sanırım temelde aynı şey: eğer ($ ('# liste p: son çocuk'). HasClass ('selected')) ... – Joseph

+14

+1 punto için .. . – MGOwen

9

jQuery bir nesnedir, dolayısıyla teknik olarak her zaman yanlış olan iki farklı (ama benzer) nesneyi karşılaştırırsınız.

Dene:

if (jQuery('#list p.selected').get(0) == jQuery('#list p:last-child').get(0)) 

jQuery.get()

İlgili konular