जवाबों:
का प्रयोग करें children()
और each()
, आप वैकल्पिक करने के लिए एक चयनकर्ता पारित कर सकते हैंchildren
$('#mydiv').children('input').each(function () {
alert(this.value); // "this" is the current element in the loop
});
आप तत्काल बच्चे के चयनकर्ता का भी उपयोग कर सकते हैं:
$('#mydiv > input').each(function () { /* ... */ });
each()
। उपरोक्त उत्तर में लिंक किए गए डॉक्स की जांच करें।
एक विशिष्ट संदर्भ में सभी तत्वों के माध्यम से पुनरावृति करना भी संभव है, कोई भी मैटर कितना गहरा नेस्टेड नहीं है:
$('input', $('#mydiv')).each(function () {
console.log($(this)); //log every element found to console output
});
दूसरा पैरामीटर $ ('# mydiv') जो jQuery के 'इनपुट' चयनकर्ता को दिया जाता है, संदर्भ है। इस स्थिति में प्रत्येक () खंड #mydiv कंटेनर के भीतर सभी इनपुट तत्वों के माध्यम से पुनरावृत्ति करेगा, भले ही वे #mydiv के प्रत्यक्ष बच्चे न हों।
यदि आपको बाल तत्वों के माध्यम से पुनरावृत्ति करने की आवश्यकता है :
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"));
नोट: इस उदाहरण में, मैं एक वस्तु के साथ पंजीकृत घटनाओं संचालकों को दिखाता हूं।
$('#myDiv').children().each( (index, element) => {
console.log(index); // children's index
console.log(element); // children's element
});
यह सभी बच्चों के माध्यम से पुनरावृत्त करता है और सूचकांक मूल्य वाले उनके तत्व को क्रमशः तत्व और सूचकांक का उपयोग करके अलग से एक्सेस किया जा सकता है ।
मुझे नहीं लगता कि आपको उपयोग करने की आवश्यकता है each()
, आप लूप के लिए मानक का उपयोग कर सकते हैं
var children = $element.children().not(".pb-sortable-placeholder");
for (var i = 0; i < children.length; i++) {
var currentChild = children.eq(i);
// whatever logic you want
var oldPosition = currentChild.data("position");
}
इस तरह से आप लूप सुविधाओं जैसे मानक break
और continue
डिफ़ॉल्ट रूप से काम कर सकते हैं
यह भी debugging will be easier
$.each()
की तुलना में हमेशा धीमा होता है for
, और यह एकमात्र उत्तर है जो इसका उपयोग करता है। यहां कुंजी .eq()
को children
एरे के भीतर वास्तविक तत्व तक पहुंचने के लिए उपयोग करना है और ब्रैकेट नहीं है ([]
) संकेतन नहीं है।