我想查找网站内列表或数组中有多少产品。我想要的那个叫Course
,它是<strong >
元素中的文本。
我可以选择所有这些但是如何使用我在浏览器中使用开发工具的单词COURSE I&#39; m来过滤它们。
以下是代码:
我为班级var e = document.querySelectorAll('.card-type');
`[<strong class="card-type">Workshop</strong>,
<strong class="card-type">Course</strong>,
<strong class="card-type">Workshop</strong>,
<strong class="card-type">Course</strong>,
<strong class="card-type">Workshop</strong>,
<strong class="card-type">Workshop</strong>,
<strong class="card-type">Workshop</strong>,
<strong class="card-type">Workshop</strong>,
<strong class="card-type">Course</strong>,
<strong class="card-type">Workshop</strong>,
<strong class="card-type">Course</strong>,
<strong class="card-type">Course</strong>,
<strong class="card-type">Course</strong>,
<strong class="card-type">Course</strong>,
<strong class="card-type">Course</strong>,
<strong class="card-type">Course</strong> ]`
答案 0 :(得分:1)
使用filter
过滤您的列表。
let courses = e.filter(item => item.textContent === "Course");
这是使用let
和fat arrow syntax
也称为lambda,它们是ES6语法。如果您想要ES5 JavaScript,只需使用var
和普通的匿名函数。
var courses = e.filter(function(item) {
return item.textContent === "Course";
});
编辑:Kevin B发现我的功能未定义,他是正确的。这是因为e
是NodeList
而不是数组。我们要转换它!有多种方法可以将NodeList转换为数组。最简单的是splice
。或者您也可以使用spread
语法[...e].filter
或Array.from()
,这也是ES6的功能。
答案 1 :(得分:0)
以下是我一步一步回答的问题:
var e = document.querySelectorAll('.card-type');
const f = Array.apply(null, e);
let courses = f.filter(item => item.textContent === 'Courses');
答案 2 :(得分:-1)