2014-10-27 26 views
1

我试图做这样的,交换表行

<table> 
    <tr id="ID1"><td></td></tr> 
    <tr id="ID2"><td></td></tr> 
</table> 

我需要换表行的索引位置类似如下

<table> 
    <tr id="ID2"><td></td></tr> 
    <tr id="ID1"><td></td></tr> 
</table> 

我试图使用jQuery来解决它:

$('#ID1').after('#ID2'); 

任何人都可以帮助我解决上述要求使用JavaScript。

谢谢,

回答

3

after()用于插入内容。通过使用appendChild

$('#ID1').insertAfter('#ID2'); 

Example fiddle

+1

'after' * *可以移动的东西,但它并没有,如果你给它一个字符串。 '$('#ID2')。after($('#ID1'));'有效,例如:http://jsfiddle.net/sbkL785c/1/ – 2014-10-27 09:45:19

+0

@ T.J.Crowder好点。 'inserAfter'更干净,但它只需要选择器。 – 2014-10-27 09:47:03

+0

是的。 (总而言之,'insertAfter'往往对我来说更加清晰。)但是,我对OP的'after'行为感到非常惊讶 - 文档表明这两个只是对方的对话,当它们显然不相当时* 案子。 – 2014-10-27 09:47:49

0

交换行:要移动或添加元素,使用insertAfter()

var x = document.getElementById("first"); 
 
var table = document.getElementById("table"); 
 
table.appendChild(x);
<table id="table"> 
 
    <tr id="first"><td>First</td></tr> 
 
    <tr id="second"><td>Second</td></tr> 
 
</table>