我试图在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>
Run Code Online (Sandbox Code Playgroud)
这是我的JavaScript:
var articleFirst = document.querySelectorAll("article.first");
var oferts = articleFirst.querySelectorAll(".oferts");
Run Code Online (Sandbox Code Playgroud)
错误:
未捕获的TypeError:articleFirst.querySelectorAll不是函数
querySelectorAll 是在DOM中的Element和Document节点上找到的方法.
您试图在调用的返回值上调用它,该调用querySelectorAll返回节点列表(这是一个类似于对象的数组).您需要循环遍历节点列表并querySelector依次调用其中的每个节点上的所有节点.
或者,只需在初始调用时使用后代组合子.
var oferts = document.querySelectorAll("article.first .oferts");
Run Code Online (Sandbox Code Playgroud)
尝试这样做:
var articleFirst = document.querySelectorAll("article.first");
console.log(articleFirst)
var oferts = articleFirst[0].querySelectorAll(".oferts");
console.log(oferts)
Run Code Online (Sandbox Code Playgroud)
使用控制台,您可以看到正在发生的事情.
或者只是这样做:
document.querySelectorAll("article.first .oferts");
Run Code Online (Sandbox Code Playgroud)
您需要使用document.querySelector而不是document.querySelectorAll因为下一个查询取决于 asingle HTMLElement但document.querySelectorAll返回 a NodeList。
document.addEventListener('DOMContentLoaded', TestCtrl);
function TestCtrl() {
var firstArticle = document.querySelector('article.first');
console.log('oferts', firstArticle.querySelectorAll('.oferts'));
}Run Code Online (Sandbox Code Playgroud)
<article class="first">
<div class="feature parts">
<div class="oferts">
<div class="heart icons"></div>
<h1>Build with passion</h1>
</div>
</div>
</article>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38168 次 |
| 最近记录: |