2010-06-11 14 views
204

मैं एक div है और यह उस में कई इनपुट तत्व है ... मैं उन तत्वों में से प्रत्येक के माध्यम से पुनरावृति करना चाहते हैं। विचार?मैं jQuery का उपयोग कर div के बाल तत्वों के माध्यम से कैसे पुन: प्रयास करूं?

उत्तर

370

उपयोग children() और each(), आप वैकल्पिक एक चयनकर्ता children

$('#mydiv').children('input').each(function() { 
    alert(this.value); // "this" is the current element in the loop 
}); 

को पारित कर सकते हैं आप, साथ ही तत्काल बच्चे का भी उपयोग कर सकता है:

$('#mydiv > input').each(function() { /* ... */ }); 
+52

फिर लूप में "वर्तमान" आइटम तक पहुंचने के लिए बंद होने के भीतर $ (इस) का उपयोग करें। – amarsuperstar

+1

@amarsuperstar: सिर्फ इतना है कि जानकारी :-) –

+0

जोड़ने की प्रक्रिया में वहाँ एक रास्ता "n" के मान की जानकारी है किया गया था, $ (this) "n" माता पिता की वें बच्चा है यह सोचते हैं? –

40

यह भी सभी तत्वों के माध्यम से पुनरावृति के लिए संभव है एक विशिष्ट संदर्भ में, कोई mattter कितनी गहराई से वे नेस्ट हैं:

$('input', $('#mydiv')).each(function() { 
    console.log($(this)); //log every element found to console output 
}); 

दूसरा पैरामीटर $ ('# mydiv') जो jQuery 'इनपुट' चयनकर्ता को पारित कर दिया है संदर्भ है। इस मामले में प्रत्येक() खंड #mydiv कंटेनर के भीतर सभी इनपुट तत्वों के माध्यम से फिर से शुरू होगा, भले ही वे #mydiv के प्रत्यक्ष बच्चे न हों।

+1

शायद इस समाधान को घोंसले के कारण मेरे लिए काम किया, जबकि दूसरे ने नहीं किया। इसी कारण से मुझे लगता है कि यह आमतौर पर बेहतर समाधान है। – arame3333

2

आप बच्चे तत्वों के माध्यम से लूप करने की जरूरत है रिकर्सिवली हैं:

function recursiveEach($element){ 
    $element.children().each(function() { 
     var $currentElement = $(this); 
     //////////// Show element 
     console.info($currentElement); 
     //////////// Show events handlers of current element 
     console.info($currentElement.data('events')); 
     //////////// Loop her children 
     recursiveEach($currentElement); 
    }); 
} 

//////////// Parent div 
recursiveEach($("#div")); 

नोट: इस उदाहरण में मैं एक वस्तु के साथ पंजीकृत घटनाओं संचालकों को दिखाते हैं।

2

यह रूप में अच्छी तरह कि जिस तरह से किया जा सकता है।
$('input', '#div').each(function() { console.log($(this)); //log every element found to console output });

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

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