查询选择器,通配符元素匹配?
2022-08-30 00:48:26
有没有办法使用 或 执行通配符元素名称匹配?querySelector
querySelectorAll
我试图解析的XML文档基本上是一个扁平的属性列表。
- 我需要找到名称中包含某些字符串的元素。
- 我看到在属性查询中支持通配符,但对元素本身不支持。
除了回到使用明显不推荐使用的XPath(IE9放弃了它)之外,任何解决方案都是可以接受的。
有没有办法使用 或 执行通配符元素名称匹配?querySelector
querySelectorAll
我试图解析的XML文档基本上是一个扁平的属性列表。
除了回到使用明显不推荐使用的XPath(IE9放弃了它)之外,任何解决方案都是可以接受的。
[id^='someId']
将匹配所有以 开头的 ID。someId
[id$='someId']
将匹配所有以 结尾的 id。someId
[id*='someId']
将匹配包含 的所有 ID。someId
如果您要查找该属性,只需替换为 .name
id
name
如果你正在谈论元素的标签名称,我不相信有办法使用querySelector
我正在混乱/思考涉及querySelector()的单行,并最终在这里结束,并且使用标签名称和querySelector()对OP问题有一个可能的答案,并@JaredMcAteer用于回答我的问题的学分,即在vanilla Javascript中与querySelector()进行类似正则表达式的匹配
希望以下内容有用并符合OP或其他所有人的需求:
// basically, of before:
var youtubeDiv = document.querySelector('iframe[src="http://www.youtube.com/embed/Jk5lTqQzoKA"]')
// after
var youtubeDiv = document.querySelector('iframe[src^="http://www.youtube.com"]');
// or even, for my needs
var youtubeDiv = document.querySelector('iframe[src*="youtube"]');
然后,我们可以,例如,获得src的东西,等等...
console.log(youtubeDiv.src);
//> "http://www.youtube.com/embed/Jk5lTqQzoKA"
console.debug(youtubeDiv);
//> (...)