为什么一个节点如果添加到另一个节点里面,原来元素里面的这个节点就会消失?
比如:
两个下拉框,我吧左边的一个opting节点移动到右边的下拉框里面去了,
然后我没做任何左下拉框的删除节点动作,为什么左边的那个opting节点会消失?                  我不是要问怎么让它不消失,我只是疑惑为什么它会自己就没了,例如下面这段代码:<style type="text/css">
div{
width: 50px;
float: left;
text-align: center;
}
</style>
<script>
var optList;
var leftSele;
var rightSele;
window.onload = function(){
leftSele = document.getElementById("leftSele");
optList = leftSele.getElementsByTagName("option");
rightSele = document.getElementById("rightSele");
}
function moveright(){
for(var i = 0;i<optList.length;i++){
if(optList[i].selected){
rightSele.appendChild(optList[i]);
i--;
}
}
}
</script>
<select multiple style="height: 100px;float: left;width: 100px;" id="leftSele">
<option>jdksldsa</option>
<option>dsdsadsaa</option>
<option>jdksladdkl</option>
<option>jdksdsajdkl</option>
<option>jdkslajdkl</option>
</select>
<div>
<input type="button" value="> " onclick="moveright()"><br>
</div>
<select multiple style="height: 100px;width: 100px;float: left;"  id="rightSele">

</select>

解决方案 »

  1.   

    难道append添加了后会自动吧原来的对象删除了~?刚才我又试了下,连我以前数组的对象也没了,需要重新获取。
      

  2.   

    这就是select 有什么问题么 这不是楼主想要的结果么?
      

  3.   

    appendChild你可以理解为移动一个元素。如果想复制一份过去,要事先clone
      

  4.   

    appendChild(Node)这个 方法一般是在指定元素节点的最后一个子节点之后添加节点但如果Node是页面中的DOM对象,那么就不是添加节点了,就是直接Move节点。明白了吧?你的代码中不是删除节点,而是移动了节点。