通过Javascript的innerHTML填充在IE9中不起作用

时间:2013-03-03 00:13:38

标签: javascript internet-explorer innerhtml

我有一个HTML表单,其中有一个+标记。我想通过Javascript对选项列表进行排序。我编写的代码适用于Chrome,Firefox,Safari和Opera,但在Internet Explorer中不起作用。我正在粘贴下面的Javasript代码。我的代码中缺少什么?

window.onload = function () {
categoryOptions = $('category').innerHTML;
$('category').innerHTML = sortCategoryOptions(categoryOptions);
};

sortCategoryOptions()的函数定义如下:

function sortCategoryOptions(categoryOptions) {
var eachOption = categoryOptions.split('</option>');
for (var i = 0; i < (eachOption.length - 1); i++) {
    eachOption[i] = eachOption[i] + '</option>';
}
eachOption.sort();
optionsSorted = '';
for (var i = 0; i < eachOption.length; i++) {
    optionsSorted = optionsSorted + eachOption[i];
}
return optionsSorted; 
} 

categoryOptions字段具有以下内容

<option>Option3</option>
<option>Option1</option>
<option>Option2</option>
<option>Option4</option>

预期输出

1 个答案:

答案 0 :(得分:0)

对于初学者来说,你真的在​​寻找一个<category>标签,我很确定这不是你的意图。无视,正如评论中所指出的那样{{1这里是$的别名,而不是document.getElementById

除此之外,使用jQuery排序是一个可怕的想法,更是如此,因为你依赖于innerHTML不被浏览器的解析器更改(它总是会</option>

因此,考虑到这一点,并假设您正在使用</OPTION>,请尝试一下:

<select id="category">