首页 » JavaScript » 移动和重排(option)选项

移动和重排(option)选项

使用DOM的appendChild()方法,就可以将第一个选择框中的选项直接移动到第二个选择框中。而使用DOM的appendChild()方法,就可以将第一个选择框中的选项直接移动到第二个选择框中。如果为appendChild()方法传入一个文档中已有的元素,那么就会先从该元素的父节点移除它,再把它添加到指定的位置。下面的代码展示了将第一个选择框中的第一个选项移动到第二个选择框中的过程:

var selectbox1 = document.getElementById("selLocation1");
var selectbox2 = document.getElementById("selLocation2");

selectbox2.appendChild(selectbox1.options[0]);

移动选项与移除选项有一个共同指出,即会重置每一个选项的index属性。
重排选线次序的过程也十分相似,最好的方式仍然是使用DOM方法。要将选择框中的某一项移动到特定位置,最合适的DOM方法就是insertBefore();appendChild()方法值适用于将选项添加到选择框的最后。要在选择框中向前移动一个选项的位置,可以使用以下代码:

var optionToMove = selectbox.options[1];
selectbox.insertBefore(optionToMove, selectbox.options[optionToMove.index-1]);

以上代码首先选择了要移动的选项,然后将其插入到排在它前面的选项之前。实际上,第二行代码对除了第一个选项之外的其它选项是通用的。类似的,可以使用下列代码将选择框中的选项向后移动一个位置:

var optionToMove = selectbox.options[1];
selectbox.insertBefore(optionToMove, selectbox.options[optionToMove.index+2]);

以上代码适用于选择框中的所有选项,包括最后一个选项。

IE7存在一个页面重绘问题,有时候会导致使用DOM方法重排的选项不能马上正确显示。

此文章发表在 JavaScript 标签为 . 将固定链接加入收藏.