JavaScript DOMParser 访问innerHTML 和其他属性
我使用以下代码将字符串解析为 DOM:
var doc = new DOMParser().parseFromString(string, 'text/xml');
其中 string
类似于 ;内容
。
typeof doc
给我object
。如果我执行像 doc.querySelector('body') 这样的操作,我会得到一个 DOM 对象。但是,如果我尝试访问任何属性,就像通常一样,它会给我undefined
:
doc.querySelector('body').innerHTML; // undefined
其他属性也是如此,例如id
。另一方面,属性检索则进展顺利doc.querySelector('body').getAttribute('id');
。
是否有一个神奇的功能可以访问这些属性?
I am using the following code to parse a string into DOM:
var doc = new DOMParser().parseFromString(string, 'text/xml');
Where string
is something like <!DOCTYPE html><html><head></head><body>content</body></html>
.
typeof doc
gives me object
. If I do something like doc.querySelector('body')
I get a DOM object back. But if I try to access any properties, like you normally can, it gives me undefined
:
doc.querySelector('body').innerHTML; // undefined
The same goes for other properties, e.g. id
. The attribute retrieval on the other hand goes fine doc.querySelector('body').getAttribute('id');
.
Is there a magic function to have access to those properties?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您当前的方法失败,因为没有为给定的 XML 文档定义 HTML 属性。如果您提供
text/html
MIME 类型,该方法应该可以工作。下面的代码为尚不支持本机支持的浏览器启用
text/html
MIME 类型。从 Mozilla 开发者网络检索:Your current method fails, because HTML properties are not defined for the given XML document. If you supply the
text/html
MIME-type, the method should work.The code below enables the
text/html
MIME-type for browsers which do not natively support it yet. Is retrieved from the Mozilla Developer Network:尝试这样的操作:
而 html 是您要转换的字符串。
Try something like this:
whereas html is the string you want to convert.
对 XML/HTML 元素使用
element.getAttribute(attributeName)
Use
element.getAttribute(attributeName)
for XML/HTML elements