【发布时间】:2012-05-17 00:14:39
【问题描述】:
我的问题:
我知道这听起来很有趣,但这是我的问题:我有一个 select,它通过 Ajax 以下列方式填充成功:
$.each(data, function(key, value) {
options += '<option value="' + key + '">' + value + '</option>';
});
我的服务器返回一个排序地图(按值排序)。一切正常,但在 Internet Explorer(7,8 和 9)中,选择显示为未排序。
我发现了什么:
我发现 IE 实际上按 key 排序显示它,我传递给 value 参数。我的列表在后端按value 排序,我想这样显示它(在 Chrome、Firefox 等上运行良好)。
我认为这种排序的原因很可能是$.each jQuery 函数。也许它正在按键迭代?不过,我不确定这一点,所以我希望得到一些反馈。另外,我怎样才能在地图上进行替代迭代,以确保这一点?我试图避免执行 jQuery 排序,因为排序是在后端完成的。
我提到我需要将key 和value 传递给option,就像我传递它们的方式一样。
编辑 - 示例:
应该如何(在 Chrome 和 Firefox 上):
<option value="13">A</option>
<option value="2">B</option>
<option value="55">C</option>
在 IE 中是怎样的:
<option value="2">B</option>
<option value="13">A</option>
<option value="55">C</option>
【问题讨论】:
-
请不要通过附加 HTML 来创建元素。 jQuery 有非常好的 DOM 操作工具。
标签: javascript jquery ajax foreach