javascript - 在 document.queryselector 中使用变量
问题描述
我正在尝试访问某个段落的所有强标签,因此我遍历了文档中的所有段落,代码解释了其余部分
let paragraphs = document.getElementsByTagName("p");
for(let i = 0; i < paragraphs.length; i++) {
var element = document.querySelector(`${paragraphs[i]} > strong`)
console.log(element)
if( element == null) {
continue;
}
else{
var element = document.querySelector('p > strong')
element.style = "";
break;
}
}
当我尝试这样做时,由于这行代码而出现错误
var element = document.querySelector(`${paragraphs[i]} > strong`)
这是错误:未捕获的 DOMException:无法在“文档”上执行“querySelector”:“[object HTMLParagraphElement] > strong”不是有效的选择器。
非常感谢任何帮助,谢谢..
解决方案
您需要传递一个选择器字符串,例如p
,.class
或#id
代替该变量,而不是 HTML 元素。
我想您实际上是在寻找在段落元素而不是对象上执行该querySelector
方法document
:
var element = paragraphs[i].querySelector(':scope > strong')
(请参阅此处了解其:scope
作用。)
推荐阅读
- python-3.x - Python Discord Bot,需要服务器 ID
- android - 使用 Android 客户端监听 io 套接字事件
- mysql - SQL 数据类型不匹配
- java - 在 Spring MVC 4.3 中重定向后缺少 flash 属性
- asp.net-core - .NET Core 2 中的 System.Web.ApplicationServices
- python - 如何将变量放入文本文件?
- sql - 通过sql提取excel数据;日期列不起作用
- swift - Swift 4,Firebase如何观察快照并转换为对象
- reactjs - 将状态作为道具传递给子组件
- elasticsearch - Multi_match 查询总是返回空结果