2

在 AJAX 请求之后,我得到一个带有一些 HTML 数据的字符串,如下所示:

var test = '<div id="test-options"><option value="">Select</option><option value="true@153237119">XS</option><option value="true@153237120">S</option><option value="true@153237121">M</option><option value="true@153237122">L</option><option value="true@153237123">XL</option><option value="true@153237124">XXL</option></div><div class="athoerstuff">Ather stuff here</div>';

我想附加它,在附加它之后只获取没有包装器的 div 的内容:

var li = $(test).appendTo('form');


$("body").find('#test-options').html();

-------------------------------------------

问题仅出现在 IE9 上,因为没有包装器的选项。IE9 正在查看 div 内的选项并意识到这是无效的。这就是为什么 IE9 没有让我选择的原因。

我在发出请求(选项值)的服务器端脚本中添加了一个选择包装器,而不是:

$('#test-options').html();

我补充说:

$('#test-options select').html();

结果结果与之前的代码相同,但现在也可以在 IE9 上运行。

感谢大家的帮助。

也许有人可以告诉我为什么 IE9 在没有选择包装器的情况下无法获得选项,而其他浏览器则可以?

4

1 回答 1

4

如果您正在尝试获取options html,那么您可以简单地执行以下操作,

$(test).unwrap().html();

而不是附加到正文并检索内容。

http://jsfiddle.net/XYhbg/

以上是假设您在测试变量中拥有的数据。让我知道是否有任何不同。

于 2012-12-03T20:23:04.477 回答