提问人:Ulysses Zhan 提问时间:11/16/2023 更新时间:11/16/2023 访问量:22
如何使用“querySelector”选择标签带有冒号的元素?
How to use `querySelector` to select an element whose label has a colon?
问:
例如,我们有这个 XML:
<?xml version="1.0" encoding="UTF-8"?>
<xml xmlns:media="http://search.yahoo.com/mrss/">
<media:content></media:content>
</xml>
那么,如何在 JavaScript 中选择其标签正在使用的节点呢?foo:bar
querySelector
幼稚的方法是这样的:
const xml = new DOMParser().parseFromString(`
<?xml version="1.0" encoding="UTF-8"?>
<xml xmlns:media="http://search.yahoo.com/mrss/">
<media:content></media:content>
</xml>
`, 'text/xml');
const node = xml.querySelector('media\\:content');
但是,在此之后,是.node
null
也许相关:
- https://bugzilla.mozilla.org/show_bug.cgi?id=883044
- 使用“:”(冒号)按属性选择元素(这个讨论的是 id 中是否有冒号时)
- 使用纯 JavaScript 选择带冒号的 XML 元素(答案建议,但我想使用它以获得更大的灵活性)
getElementsByTagName
querySelector
答:
0赞
Oluwafemi Sule
11/16/2023
#1
您的示例中存在一个错误。第一行必须是 xml 声明。
const xml = new DOMParser().parseFromString(`<?xml version="1.0" encoding="UTF-8"?>
<xml xmlns:media="http://search.yahoo.com/mrss/">
<media:content></media:content>
</xml>
`, 'text/xml');
document.querySelector 函数未提供对命名空间的支持。
您可以使用非命名空间选择器来查找元素。content
const node = xml.querySelector('content');
评论