如何使用“querySelector”选择标签带有冒号的元素?

How to use `querySelector` to select an element whose label has a colon?

提问人:Ulysses Zhan 提问时间:11/16/2023 更新时间:11/16/2023 访问量:22

问:

例如,我们有这个 XML:

<?xml version="1.0" encoding="UTF-8"?>
<xml xmlns:media="http://search.yahoo.com/mrss/">
<media:content></media:content>
</xml>

那么,如何在 JavaScript 中选择其标签正在使用的节点呢?foo:barquerySelector

幼稚的方法是这样的:

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');

但是,在此之后,是.nodenull

也许相关:

javascript xml css-selectors 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');