Javascript 如何根据内容选择HTML元素中的文本?
我想知道在一个网站的列表或数组中有多少产品。我想把它命名为Javascript 如何根据内容选择HTML元素中的文本?,javascript,jquery,html,css,find,Javascript,Jquery,Html,Css,Find,我想知道在一个网站的列表或数组中有多少产品。我想把它命名为课程,它是元素中的文本 我可以全部选择它们,但我如何才能在浏览器中使用开发工具过滤带有单词“课程”的内容呢 代码如下: 我对类var e=document.querySelectorAll('.card type')使用选择器 `[车间, 课程, 车间, 课程, 车间, 车间, 车间, 车间, 课程, 车间, 课程, 课程, 课程, 课程, 课
课程
,它是
元素中的文本
我可以全部选择它们,但我如何才能在浏览器中使用开发工具过滤带有单词“课程”的内容呢
代码如下:
我对类var e=document.querySelectorAll('.card type')使用选择器代码>
`[车间强>,
课程强>,
车间强>,
课程强>,
车间强>,
车间强>,
车间强>,
车间强>,
课程强>,
车间强>,
课程强>,
课程强>,
课程强>,
课程强>,
课程强>,
课程强> ]`
使用筛选列表
这是使用ES6语法的let
和fat arrow语法
aka lambda。如果您想要ES5 JavaScript,只需使用var
和普通匿名函数即可
var courses = e.filter(function(item) {
return item.textContent === "Course";
});
编辑:Kevin B发现我的函数没有定义,他是对的。这是因为e
是一个NodeList
而不是一个数组。我们必须转换它!有多种方法可以将NodeList转换为数组。最简单的方法是splice
。或者你可以想象一下使用spread
语法[…e].filter
或数组.from()
也是ES6的功能。使用jquery,只需几行即可完成,使用和
基本上,您需要遍历列表中的所有元素,然后检查每个元素是否有正确的内容,并使用这些内容执行其他操作
您可以使用其他功能,如向下过滤,但这实际上完全取决于您希望对元素执行的操作。以下是我一步一步完成的操作回答:
选择我想要的元素:
var e=document.querySelectorAll('.card type');
将该变量设置为数组:
const f=Array.apply(null,e);
现在使用新数组进行筛选:
let courses=f.filter(item=>item.textContent==='courses');
如果您不想转换为数组,请使用2选项,只需循环节点列表即可
let course=document.querySelectorAll(“.card type”);
使用旧的良好For循环
for(let i = 0; i < course.length; i++) {
console.log(course.item(i).innerText)
}
for(设i=0;i
以及仅获取课程单词的IF语句
for(设i=0;i
转换为数组、过滤器。
var courses = e.filter(function(item) {
return item.textContent === "Course";
});
$('.card-type').each(function(el, i) {
var text = $(el).text();
if (text == "Course") {
console.log("found it");
}
});
for(let i = 0; i < course.length; i++) {
console.log(course.item(i).innerText)
}