Ale*_*lex 3 javascript internet-explorer cross-browser innerhtml
所以我有以下代码,对我到目前为止测试的每个浏览器都很有效,除了IE
var array = eval( '(' + xmlHttp.responseText + ')' );
var html = '';
for(var key in array)
{
html += '<option value="' + key + '">' +array[key] + '</option>';
}
alert(html);
document.getElementById('countries').innerHTML = html;
Run Code Online (Sandbox Code Playgroud)
问题出在了.innerHTML.警报打印数据应该是,但内部剥离标签,我最终用一行中的单词.
那么,任何想法如何解决这个问题?
这是一个已知问题,IE不允许您使用它.innerHTML来设置option元素select.
您应该使用DOM方法创建元素.
var fragment = document.createDocumentFragment();
for(var key in array) {
var opt = fragment.appendChild(document.createElement("option"));
opt.value = key;
opt.text = array[key];
}
document.getElementById('countries').appendChild(fragment);
Run Code Online (Sandbox Code Playgroud)
如果array是一个实际的数组,那么使用for而不是for-in在JavaScript中.
如果您需要清空第select一个,您可以.innerHTML = ""使用循环执行此操作:
var sel = document.getElementById('countries');
while (sel.firstChild)
sel.removeChild(firstChild);
sel.appendChild(fragment);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
426 次 |
| 最近记录: |