html querySelectorAll不是函数

7vux5j2d  于 2022-12-16  发布在  其他
关注(0)|答案(4)|浏览(167)

我试图在var articleFirst中找到所有的函数,但是控制台中的返回消息说“querySelectorAll”不是一个函数。为什么我会得到这个错误?
这是我的HTML:

<article class="first">     
  <div class="feature parts"> 
    <div class="oferts"> 
      <div class="heart icons"></div> 
        <h1>Build with passion</h1>  
    </div>
  </div>
</article>

这是我的JavaScript:

var articleFirst = document.querySelectorAll("article.first");
var oferts = articleFirst.querySelectorAll(".oferts");

错误:
未捕获的类型错误:文章第一个.querySelectorAll不是函数

2izufjch

2izufjch1#

试着这样做:

var articleFirst = document.querySelectorAll("article.first");
console.log(articleFirst)
var oferts = articleFirst[0].querySelectorAll(".oferts");
console.log(oferts)

通过控制台,您可以看到正在发生的事情。
或者这样做:

document.querySelectorAll("article.first .oferts");
oyjwcjzk

oyjwcjzk2#

querySelectorAll是在DOM中的Element和Document节点上找到的方法。
您正尝试在调用querySelectorAll的返回值上调用它,querySelectorAll返回一个节点列表(类似于对象的数组)。您需要遍历节点列表并依次在其中的每个节点上调用querySelector
或者,在最初调用它时使用后代组合子。

var oferts = document.querySelectorAll("article.first .oferts");
uplii1fm

uplii1fm3#

您需要使用document.querySelector而不是document.querySelectorAll,因为下一个查询依赖于single HTMLElement,但document.querySelectorAll返回NodeList

document.addEventListener('DOMContentLoaded', TestCtrl);

function TestCtrl() {
  var firstArticle = document.querySelector('article.first');
  
  console.log('oferts', firstArticle.querySelectorAll('.oferts'));
}
<article class="first">     
  <div class="feature parts"> 
    <div class="oferts"> 
      <div class="heart icons"></div> 
      <h1>Build with passion</h1>  
    </div>
  </div> 
</article>
vmpqdwk3

vmpqdwk34#

有点冗长,但您可以尝试qselectorAll('article '),然后将nodeList转换为数组并选择第一个索引......例如:

let articleList = querySelectorAll('article'); // makes a NodeList of all article tags on the webpage

let article = Array.from(articleList);

article[0];

相关问题