2010-03-15 18 views
26

मैं मूल रूप से एक साधारण सूची बना रहा हूं, और सूची में से किसी एक आइटम का चयन किया गया है। मैं इसे "चुने गए" क्लास को जो भी आइटम चुनना चाहता हूं उसे लागू करके पूरा कर रहा हूं। मेरे पास दो बटन हैं जो आगे और पीछे जाते हैं जो इस सूची को पार करते हैं। हालांकि, जब उपयोगकर्ता सूची में पहले या अंतिम तत्व में जाता है, तो मैं एक पोस्ट बैक करना चाहता हूं। यह वह जगह है जहां मैं फंस गया हूं, क्योंकि मुझे यह पहचानने में परेशानी हो रही है कि वर्तमान में चयनित आइटम पहला या आखिरी नहीं है।jQuery के साथ डोम समानता की जांच कैसे करें?

सरल उदाहरण:

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

हालांकि, इस तर्क झूठे लौट जाता है:

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

मान लीजिए कि उपयोगकर्ता अगला बटन दबाता है, इस बिंदु मैं यह करने के लिए कुछ इसी तरह के लिए जाँच कर रहा हूँ पर चलो , जो मुझे विश्वास दिलाता है कि मैं इस गलत तरीके से आ रहा हूं।

jQuery का उपयोग करके इस तरह के तर्क की जांच करने के लिए मेरे लिए सबसे अच्छा तरीका क्या है?

+0

अपने प्रश्न के लिए एक खोज कर प्रयास करें: http://stackoverflow.com/questions/2436966/how-would-you-compare-jquery -objects – PetersenDidIt

+0

मैंने किया, और मुझे विशेष रूप से jQuery वस्तुओं की तुलना करने में रूचि नहीं है। मैं चाहता हूं कि jQuery का उपयोग करके डोम समानता की जांच करें। शायद यह वही है, लेकिन मैं यह मान रहा था कि जब आप डोम के लिए पूछते हैं तो jQuery ऑब्जेक्ट तत्काल हो जाते हैं, और अलग से इलाज किया जाता है। – Joseph

+0

jQuery ऑब्जेक्ट्स केवल डोम ऑब्जेक्ट्स के सरणी हैं और उन पर अधिक क्रियाएं पूर्ववत कर सकते हैं। – PetersenDidIt

उत्तर

37

आप jQuery वस्तुओं की तुलना के रूप में मैट ने दिखा दिया है, या बस सूचकांक ऑपरेटर

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

ऐसा कम ही jQuery के साथ की जरूरत है के साथ कर सकते हैं। is एक बेहतर तरीका है!

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

अथवा इसके विपरीत, अधिक पठनीय

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

मैंने वास्तव में ऐसा किया लेकिन मुझे लगता है कि आप मूल रूप से वही बात कर रहे हैं: यदि ($ ('# list p: last-child')। हैस्क्लास ('चयनित')) ... – Joseph

+14

पन के लिए +1 .. । – MGOwen

9

jQuery एक वस्तु है, इसलिए आप तकनीकी रूप से दो अलग-अलग (लेकिन समान) वस्तुओं की तुलना कर रहे हैं, जो हमेशा झूठे होंगे।

प्रयास करें:

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

jQuery.get()

संबंधित मुद्दे