2012-01-13 20 views
5

私はHTMLCollectionのコンテンツを操作するために使用できるHTMLCollectionオブジェクトを持っています。私はdiv要素をHTMLCollectionの最初、最後、または特定のインデックスに追加する方法を知りたいと思います。何かお勧めします。 ここで、nDivsはHTMLコレクションです。javascriptの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

あなたのHTMLCollectionを設定し、あなたが望むものを正確に示すいくつかのコードをここにコピーしてください – cambraca

+0

あなたの質問にいくつかのコードを含めて、あなたの難しさを具体的に指摘することをお勧めします。 – paislee

答えて

9

MDN docs

HTMLCollectionによれば 要素(文書順に)のジェネリックコレクションを表すインターフェイスと リストを横断するためのメソッドとプロパティを提供しています。

HTMLCollectionとのやり取りに制限されているため、methodsを使用してください。オブジェクトを変更するメソッドはありませんが、オブジェクトを読み取るだけです。 DOMを他の方法で操作する必要があります

純粋なJSを使用したいくつかの提案がありますが、そのような作業にはjQueryを強くお勧めします。forms[1]後に挿入

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

forms[1]

挿入:私たちは新しい要素newDivと協力し、HTMLCollectiondocument.formsしていると仮定し

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

を置き換えます:insertBefore()ため

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

ドキュメントと例、replaceChild()nextSibling、およびparentNode

+0

それは私のために働く..おかげで! – Ruchir

関連する問題