2012-01-13 12 views
5

मेरे पास एक HTMLCollection ऑब्जेक्ट है जिसका उपयोग मैं HTMLCollection की सामग्री में हेरफेर करने के लिए कर सकता हूं। मैं पहले, आखिरी या HTMLCollection की किसी विशिष्ट अनुक्रमणिका में div तत्व जोड़ने का तरीका जानना चाहता हूं। कृपया कुछ सुझाव दें। यहां एनडीआईवीएस एचटीएमएल संग्रह है।जावास्क्रिप्ट में HTMLCollection में कोई तत्व कैसे जोड़ें?

var Div = document.createElement('div'); 
    for(i=0; i<9; i++){ 
     Div.appendChild(nDivs[0].children[0]); 
    } 
    Div.id = nDivs[0].id; 
    nDivs[0].parentNode.removeChild(nDivs[0]); 

    nDivs.appendChild(Div); //this is creating problem..need an alternative to this 
    document.getElementById("ABC").appendChild(nDivs[nDivs.length - 1]); 
+0

मैंने बहुत सारे दृष्टिकोणों की कोशिश की है ... संग्रह को एक सरणी में परिवर्तित करना और फिर आगे बढ़ना, लेकिन यह मेरे उद्देश्य की सेवा नहीं करता है। मैं उस संग्रह से एक तत्व को हटाने में सक्षम हूं लेकिन एक तत्व जोड़ना नहीं हो रहा है। – Ruchir

+0

शायद यहां कुछ कोड कॉपी करें जो आपके एचटीएमएल कोलेक्शन सेट करते हैं, और यह दिखाता है कि आप – cambraca

+0

क्या चाहते हैं, मैं आपके प्रश्न में कुछ कोड शामिल करने का सुझाव देता हूं और विशेष रूप से आपकी कठिनाई को इंगित करता हूं। – paislee

उत्तर

9

MDN docs

HTMLCollection के अनुसार एक सामान्य (दस्तावेज़ क्रम में) तत्वों का संग्रह का प्रतिनिधित्व एक अंतरफलक है और इस सूची traversing के लिए तरीके और गुण प्रदान करता है।

इसकी एक अंतरफलक, आप अपनी methods के माध्यम से एक HTMLCollection के साथ बातचीत करने के लिए प्रतिबंधित कर रहे हैं। ऑब्जेक्ट को संशोधित करने के लिए वहां कोई तरीका नहीं है, केवल इसे पढ़ने के लिए। आपको डीओएम को किसी अन्य तरीके से में हेरफेर करना होगा।

यहां शुद्ध जेएस का उपयोग करके कुछ सुझाव दिए गए हैं, लेकिन मैं इस तरह के कार्यों के लिए jQuery की अत्यधिक अनुशंसा करता हूं। मान लें कि हम एक नए तत्व newDiv और HTMLCollectiondocument.forms साथ काम कर रहे:

डालने से पहलेforms[1]:

forms[1].parentNode.insertBefore(newDiv, forms[1]); 

डालने के बादforms[1]:

// there is no insertAfter() so use the next sibling as reference element 
forms[1].parentNode.insertBefore(newDiv, forms[1].nextSibling); 

की जगह 43,210:

forms[1].parentNode.replaceChild(newDiv, forms[1]); 

प्रलेखन और insertBefore() के लिए उदाहरण, replaceChild(), nextSibling, और parentNode

+0

यह मेरे लिए काम करता है .. धन्यवाद !! – Ruchir

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