次のような単純なHTMLがあります。
<body>
<form action="#">
<button type="button" onclick="changeDOM();">Change DOM</button>
</form>
<table>
<tr id='a'><td>a</td></tr>
<tr id='b'><td>b</td></tr>
<tr id='c'><td>c</td></tr>
</table>
</body>
changeDOM
テーブルの一番上の行を一番下の行にプッシュし、残りの行を「バブルアップ」する関数が必要です。私はこのようにそれをやってみました:
function changeDOM() {
var nextRow = currentRow.nextSibling;
currentRow.className='';
nextRow.nextSibling = currentRow;
currentRow = nextRow;
currentRow.className='highlight';
return true;
}
var currentRow;
currentRow = document.getElementById('a');
currentRow.className='highlight';
残念ながら、デバッガーをステップスルーすると、nextSibling
期待どおりに設定されていないことに気付きました。私はオンラインでいくつかの同様のコードを見ましたが、実際にはノードを削除して追加します。2つの質問:
DOM要素を作成および破棄せずにDOM要素の位置を変更する方法はありますか?
(1)の答えが「はい」の場合、どうすればよいですか?