Internet Explorer 从 ajax 调用中插入选择选项
Posted
技术标签:
【中文标题】Internet Explorer 从 ajax 调用中插入选择选项【英文标题】:Internet Explorer inserting select options from ajax call 【发布时间】:2012-06-16 16:56:41 【问题描述】:这适用于 Firefox 和 chrome,但不适用于 Internet Explorer。我需要这个才能在 Internet Explorer 中工作。
IE 附加的是开始标签,而不是内部文本和结束标签。 提前致谢。
JS:
function go()
$.post("ajax-select.html", "", function(resp)
$('#dropdown').append($('#newOptions option', resp));
HTML:
<body>
<select id="dropdown">
</select>
<input type="submit" value="go" onclick="go();" />
</body>
ajax-select.html:
<div>
<div id="newOptions">
<option value="opOne">one</option>
<option value="opTwo">two</option>
</div>
</div>
【问题讨论】:
@JonathanSampson 试过了,结果一样。 innerHTML=" 已解决。我仍然不确定问题出在哪里,但是如果我使用 div 标签而不是选项标签。 one 然后将ajax函数替换为: $('#newOptions div', resp).each(function(i, d ) $('#dropdown').append( $('');); 您对错误的标记是正确的,但是一旦您纠正了您就不需要更改 javascript。我刚刚在对您的页面进行故障排除时遇到了相同的解决方案。 【参考方案1】:你应该试试
$('#dropdown').html($('#newOptions option', resp));
也可以看看this的回答
【讨论】:
我认为问题在于 jquery 在 IE 中处理选项标签的方式,而不是附加。【参考方案2】:您的回答不正确。返回的实际 HTML 是:
<div>
<div id="newOptions">
<div value="opOne">one</div>
<div value="opTwo">two</div>
</div>
</div>
改正,一切正常:
<div>
<select id="newOptions">
<option value="opOne">one</option>
<option value="opTwo">two</option>
</select>
</div>
使用上述标记(选项正确嵌套在选择元素中),您可以继续使用以下内容:
$(function()
$("input[value='go']").on("click", function()
$.post("ajax-select.html", function(resp)
$(resp).find("option").appendTo("#dropdown");
);
);
);
【讨论】:
对不起,这只是一个类型-o。它仍然对我不起作用。 users.csc.tntech.edu/~elkrohnfel21/testing/select.html @Eric 您测试的是哪个版本的 IE?这在 IE10 中对我来说很好用。以上是关于Internet Explorer 从 ajax 调用中插入选择选项的主要内容,如果未能解决你的问题,请参考以下文章
Internet Explorer 中允许的 Ajax 跨域请求
Internet Explorer 9 AJAX 请求上没有会话 Cookie
在 Internet Explorer 9 中更改域名后,Ajax 停止工作