2016-05-13 17 views
0

親要素の子要素の位置を入れ替えるための関数を書いています。HTML要素の配列をNodelistに変換する

<div class="parent"> 
    <div class="first-child"></div> 
    <div class="second-child"></div> 
</div> 

だから私は要素の順序/位置を交換するために、配列を並べ替え、配列にノードリストを回す.parentの子供を取得していますが、最初の子、すなわち、第二子は、第1、第2、子になります-child - これはすべて完璧に動作します。しかし、理想的には、関数はリオーダ構造の親要素を返すのが理想ですが、ノードリストを配列に効果的にスプライスしたため、配列の要素はもはやノードとはみなされません。つまり、子として追加しようとするとエラーが発生します親に

Nodelistがjavascriptにネイティブではないことを理解しているので、どのようにして要素の配列をNodelistに変換できますか?

これまで私がこれまで持っていたもののコデペンがあります。 http://codepen.io/anon/pen/QNPKqB?editors=0011

ありがとうございます!

答えて

0

あなたのコードのエラーは、NodeListが必要というわけではありません。関数と要素交換の両方に名前を付けたことになります。

var parent = document.querySelector('.swap'); 
swap(parent, first, second); 

あなたは

を必要とするものです私は代わりにcodepenアカウントを持って、ここで作業コードが表示されない: https://jsfiddle.net/owr15hnf/

+0

を申し訳ありませんああ!私は実際にCodepenの変数の名前を変更しました.Codepenの例は実際に動作しますが、別の環境で使用するとNodeエラーがスローされます。 – connorb

+0

どのような環境で、具体的なエラーは何ですか? – sheeldotme

+0

環境は私が現在構築しているサイトにあり、エラーはタイプエラーです - しかし、私の質問はもっとです。どのように実際のエラー自体とは対照的に、Nodelistに要素の配列の型を再定義することができますか、それを引き起こしているのか、それを回避する方法、つまり要素を親のinnerHTMLに追加するだけです。しかし、アレイをNodelistに変換する方法があれば、それはすばらしいでしょう! – connorb

関連する問題