我有一些看起来像这样的简单 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
并没有像我预期的那样设置。我在网上看到了一些类似的代码,但它们实际上是删除节点并附加它们。两个问题:
有没有办法在不创建和销毁它们的情况下改变 DOM 元素的位置?
如果 (1) 的答案是肯定的,那么我该怎么做?