首页 > 解决方案 > 在 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”不是有效的选择器。

非常感谢任何帮助,谢谢..

标签: javascriptqueryselector

解决方案


您需要传递一个选择器字符串,例如p.class#id代替该变量,而不是 HTML 元素。

我想您实际上是在寻找在段落元素而不是对象上执行该querySelector方法document

var element = paragraphs[i].querySelector(':scope > strong')

(请参阅此处了解其:scope作用。)


推荐阅读