工作,我有以下簡單的腳本的document.getElementById()。innerHTML的用於選擇標籤不能在IE
<input type="button" onclick="document.getElementById('a').innerHTML = '<option>something</option>';"/>
<select id="a" style="width: 150px;">
</select>
,但它不能在IE瀏覽器。 你能告訴我爲什麼嗎? 感謝
工作,我有以下簡單的腳本的document.getElementById()。innerHTML的用於選擇標籤不能在IE
<input type="button" onclick="document.getElementById('a').innerHTML = '<option>something</option>';"/>
<select id="a" style="width: 150px;">
</select>
,但它不能在IE瀏覽器。 你能告訴我爲什麼嗎? 感謝
你會好起來的具有AJAX腳本返回一個包含您想要的選項的JSON對象,然後使用DOM方法來創建選項節點匹配。
如果你真的必須這樣做以HTML字符串,這樣做的方式是寫裏面的選項全新<select>
元素。然後,您可以將<option>
節點中的信息複製到您最初定位的選擇中。
var select= document.getElementById('a');
select.options.length= 0;
var div= document.createElement('div');
div.innerHTML= '<select>'+options+'</select>';
var options= div.firstChild.options;
for (var i= 0; i<options.length; i++) {
var o= options[i];
select.options[i]= new Option(o.text, o.value, o.selected);
}
感謝的人,我就是在想整天。 我不知道JSON可言,也許你可以給一個鏈接,在那裏我可以讀到他們? – Simon 2010-05-15 11:01:55
IE往往不喜歡你這樣的項目做事情的方式。同樣可以設置表格的innerHTML
。
您應該學會使用DOM方式......例如,使用createElement ("OPTION")
,然後使用appendChild()
(如果需要,先刪除removeChild()
的子項)。總的來說,它比innerHTML
好。
使用此代碼:
var optionElement = document.createElement("option");
optionElement.innerHTML = "some text here";
document.getElementById('a').appendChild(optionElement);
是的,它的工作原理,但我用阿賈克斯,並在php文件我生成準備選項列表,在這種情況下,我不能使用的appendChild方法:( – Simon 2010-05-14 23:28:30
或者乾脆使用jQuery和html()
代替innerHTML
...
所以......
$("#a").html("<option>Whatever</option>");
在所有對象所有的瀏覽器的偉大工程!
相關,跨瀏覽器的方式以前的問題補充一個選項:http://stackoverflow.com/questions/292101/browser-neutral-way-to-add-options-to-a-select-element-in -javascript/292122#292122 – 2010-05-15 00:56:39
見http://stackoverflow.com/questions/1848588/why-does-html-work-and-not-innerhtml-or-appendchild/1849100#1849100 – 2010-05-15 01:00:30