2010-02-07 28 views
14

मेरे पास एक DOM तत्व का संदर्भ है, और एक jQuery ऑब्जेक्ट जो चयनकर्ता का परिणाम है, और मैं यह जांचना चाहता हूं कि वह विशिष्ट DOM तत्व उसमें है या नहीं jQuery वस्तु। संपूर्ण jQuery ऑब्जेक्ट के माध्यम से लूपिंग का छोटा और समानता की जांच करना, क्या ऐसा करने के लिए jQuery में एक सीधा तरीका है?jQuery: जांचें कि क्या jQuery ऑब्जेक्ट में शामिल है (शामिल) सटीक DOM तत्व

मैं .contains, :contains, .has और :has, और उनमें से कोई कोशिश की है काम करने के लिए लग रहे हैं। साथ ही, मुझे यह उल्लेख करना चाहिए कि जिन तत्वों के साथ मैं काम कर रहा हूं वे एक ही डोम वृक्ष स्तर पर हैं, इसलिए माता-पिता/बच्चों के बारे में चिंता करने की आवश्यकता नहीं है।

+0

आप के लिए आप क्या देख रहे हैं पर स्पष्ट होना चाहिए। क्या आप आईडी पर मेल खाते हैं? –

+0

हाँ मुझे और विस्तार करना चाहिए था। 1. मेरे पास इन तत्वों से जुड़े आईडी नहीं हैं। अगर मैंने किया तो यह बहुत आसान होगा। 2. मेरी वास्तविक समस्या यह निर्धारित कर रही थी कि पिछले भाई बहनों या किसी दिए गए पिवट तत्व के अगले भाई बहनों में कोई तत्व मौजूद था या नहीं। इस प्रकार, सभी समाधान जिनके लिए मूल तत्व की आवश्यकता होती है जैसे कि .find() का उपयोग लागू नहीं है। – Suan

उत्तर

9

Gumbos जवाब देने के लिए समान है, लेकिन स्लिमर:

if (obj.filter(function() { return this == el; }).length) { 
    // obj contains el 
} 
2

इस प्रयास करें:

var result = $("selector").find("*").filter(function() { 
    return this === elem; 
}).length === 1; 

elem डोम तत्व आप के लिए देख रहे हैं।

+0

जो मैं खोज रहा था। स्वीकृत उत्तर में महत्वपूर्ण खोज ("*") भाग गुम था। – MatteS

0

किंडा hackish, लेकिन मेरे लिए काम करता है:

$.inArray($('#single-element').get(0), $('.many-elements').get()) != -1 
12
$yourJqueryObject.is(yourDomElement) 

देखें .is() 1.6 में जोड़ा।

1

डेविड का जवाब देने के लिए इसी तरह की लेकिन फिर भी स्लिमर:

if (obj.filter(el).length) { 
    // obj contains el 
}