2012-11-16 13 views
19

पर खोजें तत्व की मैंएचटीएमएल स्ट्रिंग

var testHTML = "<div id='demo_div'></div>"; 

मैं JQuery इसके साथ हेरफेर करने के लिए वस्तु के रूप में div ऊपर प्राप्त करना चाहते हैं मान लीजिए करते हैं।

var found = $(testHTML).find("#demo_div"); 

और साथ:: मैं के साथ यह पता लगाने की कोशिश

var found = $(testHTML).find("div"); 

दोनों भाग्य के बिना। मेरे पास खाली है चर। मैं क्या गलत कर रहा हूँ?

पीएस हाँ मैं जानता हूँ कि मैं

$("#demo_div") 

के साथ मेरी div के लिए सीधी पहुँच हो सकता है, लेकिन मैं मेरे मामले में यह नहीं कर सकते - मैं सादे HTML कि बस जैसे कुछ चर को सौंपा जाएगा से यह प्राप्त करने की आवश्यकता मेरे उदाहरण में परीक्षण HTML var के साथ।

अद्यतन: यहां तक ​​कि अगर मैं जड़ नहीं किया है div यहाँ की तरह तत्व:

var testHTML = "<html><div id='demo_div'></div></html>"; 

मैं उपयोग नहीं कर सकते div तत्व नेविगेट करने के लिए पाते हैं।

उत्तर

48
समस्या

कि आपके div संग्रह में मूल तत्व है है, तो आप .filter() बजाय .find() (जो केवल वंशज तत्वों पर लग रहा है) का उपयोग करने की जरूरत है:

var found = $(testHTML).filter("#demo_div"); 

मैं अपने वास्तविक HTML संभालने कर रहा हूँ स्ट्रिंग प्रश्न में से एक से अधिक जटिल है, अन्यथा आपको $(testHTML) के अलावा कुछ भी करने की आवश्यकता नहीं है और आपके पास एक एकल ऑब्जेक्ट वाला एक jQuery ऑब्जेक्ट होगा।

+1

हाँ मेरे पास अधिक जटिल HTML है और मेरा div इसकी जड़ नहीं है। लेकिन _find_ वहां काम नहीं कर रहा है! –

+3

@MichaelZ - तो आपकी समस्या कहीं और अधिक संभावना है। यदि आप जिस तत्व को खोज रहे हैं वह संग्रह की जड़ पर है, तो '.filter()' का उपयोग करें, यदि यह नहीं है, तो '.find() 'का उपयोग करें। [यह उदाहरण] देखें (http://jsfiddle.net/jamesallardice/CWnvu/1/)। –

+0

मेरा अपडेट देखें और इसे अपने आप आज़माएं –

0

आप जावास्क्रिप्ट के .search() फ़ंक्शन का उपयोग कर सकते हैं।

testHTML.search('demo_div')>-1 
संबंधित मुद्दे