dom操作--移动节点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dom操作--移动节点相关的知识,希望对你有一定的参考价值。

我想实现表格的移动,首先,有一个表单,它的值是递增的,每次提交,其值+1,到八了返回1,重新递增,这个递增我能实现,但是,我希望表格也根着表单值的排列而排列.表格的代码如下:
<body>
<form name="yunxin" method="post" action="" class="center">
小车号
<select name="select" id="xc" size="1">
<option value="1" selected id="chehao">1</option>
<option value="2" id="chehao">2</option>
<option value="3" id="chehao">3</option>
<option value="4" id="chehao">4</option>
<option value="5" id="chehao">5</option>
<option id="chehao" value="6">6</option>
<option id="chehao" value="7">7</option>
<option id="chehao" value="8">8</option>
</select>
</form>
<table width="50" height="50" border="1" id="xm">
<tr id="t1"><td id="n1">1</td></tr>
<tr id="t2"><td id="n2">2</td></tr>
<tr id="t3"><td id="n3">3</td></tr>
<tr id="t4"><td id="n4">4</td></tr>
<tr id="t5"><td id="n5">5</td></tr>
<tr id="t6"><td id="n6">6</td></tr>
<tr id="t7"><td id="n7">7</td></tr>
<tr id="t8"><td id="n8">8</td></tr>
</table>
</body>
比如当前表单的值为4,那么表格的排列顺序则为4,5,6,7,8,1,2,3,请问一下该如何实现?我试过先把最上面的节点<tr>添加到表格最后面,再删除第一个<tr>节点,行不通,试过先删再添,更不行.没办法,只能来求高手来帮帮忙了~!
不行,我的table里的内容是随时更改的,一楼的思路行不通,要是能用的话,我就用数组了~有没有办法做到?最好是可行的,难得有些问题要问,如果可行的话,另加分~最好是给可行的代码~!

参考技术A   为什么非得移动一行呢?如果你只是想切换tr内的td的innerhtml的话,做起来应该是很简单的,
  如果你真要移动行的话,你可以搜索下“table拖拽”关键字。有很多相关的代码。
  再给你个这种思路吧:
  <html>
  <head>
  <script>
  function table_tb(th)
  
  var str_tb='<table width="50" height="50" border="1" id="xm">';
  var str_tr1='<tr id="t1"><td id="n1">1</td></tr>';
  var str_tr2='<tr id="t2"><td id="n2">2</td></tr>';
  var str_tr3='<tr id="t3"><td id="n3">3</td></tr>';
  var str_tr4='<tr id="t4"><td id="n4">4</td></tr>';
  var str_tr5='<tr id="t5"><td id="n5">5</td></tr>';
  var str_tr6='<tr id="t6"><td id="n6">6</td></tr>';
  var str_tb2='</table>';
  var tb=str_tb+str_tr1+str_tr2+str_tr3+str_tr4+str_tr5+str_tr6+str_tb2;

  switch(th)
  
  case '1':
  break;
  case '2': tb=str_tb+str_tr2+str_tr3+str_tr4+str_tr5+str_tr6+str_tr1+str_tb2;

  break;
  case '3': tb=str_tb+str_tr3+str_tr4+str_tr5+str_tr6+str_tr1+str_tr2+str_tb2;
  break;
  case '4': tb=str_tb+str_tr4+str_tr5+str_tr6+str_tr1+str_tr2+str_tr3+str_tb2;
  break;
  case '5': tb=str_tb+str_tr5+str_tr6+str_tr1+str_tr2+str_tr3+str_tr4+str_tb2;
  break;
  case '6': tb=str_tb+str_tr6+str_tr1+str_tr2+str_tr3+str_tr4+str_tr5+str_tb2;
  break;
  default :
  break;
  

  window.test.innerHTML=tb;

  
  </script>
  </head>
  <body>
  <form name="yunxin" method="post" action="" class="center">
  小车号
  <select name="select" id="xc" size="1" onchange="table_tb(this.value);">
  <option value="1" selected id="chehao">1</option>
  <option value="2" id="chehao">2</option>
  <option value="3" id="chehao">3</option>
  <option value="4" id="chehao">4</option>
  <option value="5" id="chehao">5</option>
  <option id="chehao" value="6">6</option>

  </select>
  </form>
  <div id='test'>
  <table width="50" height="50" border="1" id="xm">
  <tr id="t1"><td id="n1">1</td></tr>
  <tr id="t2"><td id="n2">2</td></tr>
  <tr id="t3"><td id="n3">3</td></tr>
  <tr id="t4"><td id="n4">4</td></tr>
  <tr id="t5"><td id="n5">5</td></tr>
  <tr id="t6"><td id="n6">6</td></tr>

  </table></div>
  </body>
  </html>
  动态的也一样行啊。。。只要在函数里动态得到内容不就得了,document.getElementById('n1').innerhtml
  如果还不满意,那你找‘table拖拽’代码吧。本回答被提问者采纳

DOM操作怎样添加移除移动复制。创建和查找节点?

(1)创建新节点

  createDocumentFragment() //创建一个DOM片段

  createElement() //创建一个具体的元素

  createTextNode() //创建一个文本节点

(2) 添加、移除、替换、插入

  appendChild()

  removeChild()

  redplaceChild()

  insertBefore() //在已有的子节点前插入一个新的子节点

(3) 查找

  getElementsByTagName() //通过标签名称

  getElementsByName() //通过元素的Name属性的值(IE容错能力较强会得到一个数组,其中包括id等于name值的)

  getElementById() //通过元素Id,唯一性

以上是关于dom操作--移动节点的主要内容,如果未能解决你的问题,请参考以下文章

JS中的DOM操作怎样添加移除移动复制创建和查找节点

DOM操作——怎样添加移除移动复制创建和查找节点

DOM操作怎样添加移除移动复制。创建和查找节点?

5、dom 结构操作怎样添加、移除、移动、复制、创建和查找节点

DOM操作——怎样添加移除移动复制创建和查找节点

jQuery之常用DOM操作