2009-08-11 13 views
5

मेरी एचटीएमएलJQuery उप चयनकर्ता सवाल

<div id="x"> 
    <div id="x1"> 
    some text 
    <div>other text</div> 
    </div> 
    <div id="x2">just text</div> 
<div> 

मेरे कॉल

के अलावा कोई jQuery चयनकर्ता, 1 या अधिक तत्वों हो सकता है मैं इस तत्व होते हैं:

var x = $("#x"); 

अब मैं आवश्यक है (यह एक प्लगइन है जो टैब जैसे आंतरिक तत्वों को खोजेगा) केवल डीआईवी तत्वों के माध्यम से नेविगेट करने के लिए और इसके बच्चों के नहीं। मैं कोशिश कर रहा हूँ ...

$.each($($("div"), x), function() { 
    alert($(this).html()); 
}); 

शो: 1. कुछ textother पाठ 2. अन्य पाठ 3. बस पाठ

$.each($($("div"), x).siblings(), function() { 
    alert($(this).html()); 
}); 

शो: 1. केवल पाठ 2. कुछ टेक्स्टदर टेक्स्ट

यह सबसे अनुमानित है, लेकिन मुझे सही क्रम में आवश्यकता है। कोई उपाय ? धन्यवाद

ps। क्योंकि यह एक प्लगइन है जिसे मैं नहीं कर सकता।

$("#x", "div....") 

मैं इस

#(newselector, x) 

उत्तर

10

आप $("#x > div") उपयोग नहीं कर सकते क्योंकि यह सभी चयनकर्ताओं आप तो यह सोचते हैं आप के लिए वर एक्स कि विशिष्ट चयनकर्ता परिभाषित के बारे में सोच के साथ काम करना चाहिए:

var x = $('#x'); 

// this will select only the direct div children of x whatever the x is 
x.children('div'); 
+0

यही मुझे चाहिए। धन्यवाद। पहले कभी नहीं() बच्चों को देखा। –

1

उपयोग करने की जरूरत है:

$("#x > div") 
अपने चयनकर्ता के रूप में

- यह केवल div जिसका आईडी x है के प्रत्यक्ष बच्चों का चयन करेंगे।

+0

हाय साथी, मैंने कहा कि मैं नहीं कर सकते का उपयोग $ ("# x") क्योंकि यह एक प्लगइन है और $ ("# x") किसी भी प्रकार का चयनकर्ता हो सकता है, यह $ ("*") हो सकता है। यह $ (चयनकर्ता, jqueryobj) धन्यवाद के साथ किया जाना चाहिए। –

+0

@Rodrigo: उत्तर अभी भी '>' है। आप इसे अन्य तरीकों से उपयोग कर सकते हैं जैसे '$ ('> div', jqueryobj)' –

1

यह विधि आपको एक div के सभी आंतरिक पाठ दे देंगे:

x.children('div').each(function() { 
    alert($(this).text()); 
}); 

आप सभी पाठ कई बच्चे divs से संयुक्त नहीं करना चाहते हैं, तो आप केवल प्रत्यक्ष पाठ नोड का उपयोग कर सकता है प्रत्येक की:

x.children('div').each(function() { 
    alert(this.childNodes[0].nodeValue); 
}); 

नोट: यह सोचते हैं x एक jQuery तत्व var x = $('#x') द्वारा परिभाषित किया गया है।

+0

+1 - यह भी काम करेगा –

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