我有一些簡單的HTML,看起來像這樣:如何在不創建新元素的情況下修改DOM元素的位置?
<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
沒有得到設置爲我的預期。我在網上看到過一些類似的代碼,但他們實際上刪除了節點並追加它們。兩個問題:
有沒有辦法來改變DOM元素的位置,而無需創建和銷燬它們呢?
如果(1)的答案是肯定的,那麼我該怎麼做?
是不是在數字世界中移動東西總是複製/刪除? (除非你只是參考)。你不是隻想要最高效的? – Niklas 2012-08-07 13:38:10