【问题标题】:Internet Explorer inserting select options from ajax callInternet Explorer 从 ajax 调用中插入选择选项
【发布时间】: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。我刚刚在对您的页面进行故障排除时遇到了相同的解决方案。

标签: ajax internet-explorer jquery jquery-selectors html-select


【解决方案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");
        });
    });
});

【讨论】:

猜你喜欢
  • 2012-01-23
  • 1970-01-01
  • 1970-01-01
  • 2015-03-15
  • 2020-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多