想向SELECT中的OPTIONS添加元素S2.options.add(S1.options[index], index);但add的第一个参数要求是 Element,上面的代码会提示参数错误提示如果是var oOption = document.createElement("OPTION");
S2.options.add(oOption, index);
oOption.value = S1.options[indxe].value;
oOption.innerHTML = S1.options[index].innerHTML;这样虽然可以
但是如果option里还有title什么的,甚至是自定义的属性,就无法都写出来了啊...有什么办法可以直接把Object转换成Element吗??var oOption = document.createElement("OPTION");
S2.options.add(oOption, index);
oOption = S1.options[indxe]测试过上面这样...同样提示参数错误...
S2.options.add(oOption, index);
oOption.value = S1.options[indxe].value;
oOption.innerHTML = S1.options[index].innerHTML;这样虽然可以
但是如果option里还有title什么的,甚至是自定义的属性,就无法都写出来了啊...有什么办法可以直接把Object转换成Element吗??var oOption = document.createElement("OPTION");
S2.options.add(oOption, index);
oOption = S1.options[indxe]测试过上面这样...同样提示参数错误...
S2.options.add(oOption, index);
S2.options[index].mergeAttributes(S1.options[index])
S2.options[index].innerHTML = S1.options[index].innerHTML;
目前通过此方法实现上面的要求,所有属性连自定义属性都被复制过去
var oOption = document.createElement("OPTION");
oOption.setAttribute("title", "is title");
S2.options.add(oOption, index);
S2.options[index].mergeAttributes(S1.options[index])
S2.options[index].innerHTML = S1.options[index].innerHTML;
var oOption = document.createElement("OPTION");
S2.options.add(oOption, index);
S2.options[index].mergeAttributes(S1.options[index])
S2.options[index].innerHTML = S1.options[index].innerHTML;
这种方法的话,既然会出现innerHTML有时候显示不出来的情况,至少在IE8下确实发生了
我是弄了4个SELECT,然后添加的时候前2个SELECT确实添加了该option,而且也显示正常
但是后面2个就变成空白,但是title还是显示出来了
测试在添加完后
alert(S2.options[index].innerHTML);
也正确,但是页面上看到的确实是空白...
没办法,后来改成
var oOption = new Option(S1.options[index].firstChild.data);
S2.options.add(oOption, index);
S2.options[index].mergeAttributes(S1.options[index]);
如果new Option的时候使用innerHTML的话,则会把如 这样的字符也显示出来,而用innerText的话虽然显示正常,但是innerText是IE独有的属性,最后发现firstChild.data这个基本上全浏览器都有的属性(其实用S1.options[index].txt也是可以的)