1

2番目のノードを最初のノードに移動する関数が必要ですが、機能しません。何か提案はありますか?

 var node = document.getElementById("ir");
    var cx = node.childNodes[1];
    function der(){
    node.insertBefore(cx,node.firstChild);
}

フルコード:

<div id="ir">
<p id="ie">test</p>
<img src="test.gif">
</div>

<script type="text/Javascript">
var node = document.getElementById("ir");
img.setAttribute("onclick","der()");
var cx = node.childNodes[1];
function der(){
        node.insertBefore(cx,node.previousSibling);
}
4

4 に答える 4

3

http://jsfiddle.net/joeframbach/JSZPy/

そのフィドルのhtmlの問題はスペースです。childNodes[0]最初のスペースのセットとchildNodes[1]一致し、最初の要素と一致します。おそらくこれはあなたの問題です。

<div id="ir">
    <p>First</p>
    <p>Second</p>
</div>

var node = document.getElementById("ir");
var first = node.childNodes[1];
var second = node.childNodes[3];
node.insertBefore(second,first);
于 2013-03-21T16:23:39.153 に答える
0

子ノードを使用する場合は、スペースやブレークラインを配置しないことをお勧めします。これは、テキスト タイプの子と見なされるためです。このコードがお役に立てば幸いです: Javascript コード:

function change(){
    var parent = document.getElementById("ir");
    var img = parent.childNodes[1];
    parent.removeChild(img);
    parent.insertBefore(img, parent.firstChild);
}

HTML コード:

<div id="ir"><p id="ie">test</p><img src="test.gif"></div>
<button onclick="change()">Change</button>
于 2013-03-21T16:32:58.990 に答える