jQuery 的字符串选择器不适用于 Internet Explorer
我使用 jQuery 的 $.get()
进行 ajax 调用,将字符串返回给函数。该字符串包含 xml 和 html,我必须使用 jQuery 的选择器提取 html 的某些部分,例如:
$.get(
url,
function (xml) {
$(xml).find('something').whatever();
}
);
在这种情况下,Firefox 和 Chrome 一切正常,假设 xml var 是一个字符串(headers text/html确保以 php 发送)。但在 IE 中,它找不到“something”标签。
为什么这不起作用?
更新:
我试图简化问题:
var test = "<hello><world /></hello>";
alert($(test).find('world').length);
这在每个浏览器上都可以正常工作(显示 1
),但在 Internet Explorer 中则不然,它显示 0
>(仅在 IE7 上尝试过)。
如何解决此问题而无需更改 XML 中变量的格式?
I make an ajax call with jQuery's $.get()
that returns a string to a function. This string contains both xml and html, and I have to extract some part of the html with jQuery's selectors, for example:
$.get(
url,
function (xml) {
$(xml).find('something').whatever();
}
);
In that case, everything works fine with Firefox and Chrome, assuming that the xml var is a string (headers text/html sent in php to be sure). But in IE, it can't find the "something" tag.
Why doesn't this work?
Update:
I tried to simplify the problem:
var test = "<hello><world /></hello>";
alert($(test).find('world').length);
This is working just fine on every browser (displays 1
) but not in Internet Explorer, it displays 0
(only tried on IE7).
How do I fix this problem without having to change the format of the variable in XML?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
由于它的 XML 尝试以下内容:
$(xml).contents().find('something').whatever()
这类似于在 Iframe 中访问 DOM
更新:
对 Floren 评论的回答:
要从本地字符串变量解析 XML 字符串,您必须专门为 IE 创建一个解析器对象。 FF 或其他人可能不需要。
但对于
$.ajax
来说,如果dataType
指定为xml
那么这个转换会自动完成,我们不必创建 XML 解析器。Since its XML try the following :
$(xml).contents().find('something').whatever()
This something similar to accessing the DOM within an Iframe
<iframe>
UPDATE:
Answer to Floren's comment:
For parsing XML string from a local string variable you would have to create a parser object specifically for IE. It may not be required for FF or others.
But for
$.ajax
if thedataType
is specified asxml
then this conversion is done automatically and we don't have to create the XML parser.尝试将 dataType 设置为 html。
Try to set the dataType to html.