var oListbox =document.getElementById("sellistbox");
ListUtil.shiftUp= function(oListbox, iIndex) {
if(iIndex > 0){
var oOption = oListbox.options(iIndex);
var oPrevOption=oListbox.options(iIndex-1);
oListbox.insertBefore(oOption, oPrevOption);
}
};疑问是:插入oOption 到 oPrevOption 之前。 但原来的oOption怎么就被remove 了吗? 按照insertBefore来说只是插入么,没说删除掉原来的啊?
比如现在: 1 ,2。 现在我要把2提前, 用这方法书上说会:2,1 但我个人理解为2,1,2。 这是我的一个比方。 请大家帮我点明下,谢谢! 我哪里疏忽了,正在学习中!
ListUtil.shiftUp= function(oListbox, iIndex) {
if(iIndex > 0){
var oOption = oListbox.options(iIndex);
var oPrevOption=oListbox.options(iIndex-1);
oListbox.insertBefore(oOption, oPrevOption);
}
};疑问是:插入oOption 到 oPrevOption 之前。 但原来的oOption怎么就被remove 了吗? 按照insertBefore来说只是插入么,没说删除掉原来的啊?
比如现在: 1 ,2。 现在我要把2提前, 用这方法书上说会:2,1 但我个人理解为2,1,2。 这是我的一个比方。 请大家帮我点明下,谢谢! 我哪里疏忽了,正在学习中!
re:
这是插入么?象clone吧!在元素没有存放点时.它只存在与内存中.跟文档中的元素没任何关系.象:
document.createElement("a")
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
你想在第二个的前面加入一个值,那么
var oOption = oListbox.options(iIndex-1);
var oPrevOption=oListbox.options(iIndex-2);
它俩应该这样写,索引是从0开始的,而你原来的做法是 :
首先获得bc两项,然后
把c的值插在b的前面,这样就是颠倒了bc的位置,你应该这样
var oOption = oListbox.options(iIndex-1);
var oPrevOption=oListbox.options(iIndex-2);
然后添加一个option(document.createElement(“option”)),然后在添加就没事了
var oPrevOption=oListbox.options(iIndex-1);只是取到他们,然后insertBefore是安排他们的顺序,对不? 不是简单的插入。
前面看的急了,对insertBefore可能就没理解好:) 我这样理解对不?