好的,我会尝试尽可能简单地解释这一点;
我正在尝试使用 jQuery 解析通过 Web 服务获得的 XML。一切都按其应有的方式进行,直到我注意到看在上帝的份上,我无法解析名为“image”的节点。
长话短说(2小时后)我注意到,问题出在标签名称中。显然,“图像”是一个保留词或类似的东西???
这是一个演示;首先,我模拟了 xml,它有“image”节点,不会显示任何结果。其次,我模拟了相同的 xml、相同的解析,我只是将“image”重命名为“image1”,它就可以工作了。
请参阅此处的示例:http://jsbin.com/evinah/1/edit http://jsbin.com/evinah/1/edit
所以,显然我无法更改网络服务,它不在我的域中。如何使用 jQuery 获取“图像”值?
感谢您的回复。
其他答案中已经提到了如何解决问题,但我认为解释什么是“错误”很重要image
tags.
当您将 XML 字符串传递给 jQuery 时,它将使用浏览器的本机 DOM 方法来解析 XML。这些 DOM 方法主要用于解析和处理 HTML。
让我们看看当您创建一个时会发生什么root
元素:
> var e = document.createElement('root');
<root></root>
console.log(e)
列出了一堆属性,但最重要的是,此元素继承自HTMLUnknownElement
,这是有道理的。
现在让我们创建一个image
元素:
> var e = document.createElement('image');
<img>
呃?哪里<image></image>
?事实证明image是一个别名img https://stackoverflow.com/questions/11928566/img-vs-image-tag-in-html。新元素继承自HTMLImageElement
.
您现在可能认为您可以这样做.children('img').text()
,但这不会起作用,因为img
元素不能有后代。浏览器生成的结果结构是:
<root>
<item>
<img>
image link
</item>
<item>
<img>
image link2
</item>
</root>
文本节点是img
元素,而不是后代。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)