IE和JQuery:.html()剥离标签

时间:2012-02-18 05:53:51

标签: jquery internet-explorer

我有国家,地区和城市选择。当用户更改Country选择时,它会发送一个AJAX请求并接收如下所示的数据:

<div class="regionData">
  <option value="1">Region name</option>
  <option value="2">Region name 2</option>
</div>

<div class="cityData">
  <option value="1">City 1</option>
  <option value="2">City 2</option>
</div>

然后我更新其他2个选择

$("#Estate_region_id").html($(html).filter(".regionData").html());
$("#Estate_city_id").html($(html).filter(".cityData").html());

除了IE之外,它在所有浏览器中都运行良好(令人惊讶)。在IE .html()中,就好像是.text()并剥离所有标记,只留下文本。任何人都可以建议如何处理这个?

2 个答案:

答案 0 :(得分:1)

您的HTML无效。您无法在option内添加div标记。

发送您的回复。

<select class="regionData">
  <option value="1">Region name</option>
  <option value="2">Region name 2</option>
</select>

<select class="cityData">
  <option value="1">City 1</option>
  <option value="2">City 2</option>
</select>

你的JavaScript看起来不错,只需修改响应html它就能正常工作。

答案 1 :(得分:0)

<option>不是<div>的孩子的有效标记。因此,IE(正确地,我相信)在innerHTML(因此.html())中剥离它并且假装你没有犯错误。

相反,请使用<select>来保留<option>代码。