Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 条件来检查任何元素是否具有特定的类_Javascript - Fatal编程技术网

Javascript 条件来检查任何元素是否具有特定的类

Javascript 条件来检查任何元素是否具有特定的类,javascript,Javascript,我有一个包含条件语句的javascript循环。 我需要这个条件来检查循环中的当前项是否包含任何具有特定类名的元素 这是我目前拥有的,但是你会发现这是不正确的。 当前,我的条件检查当前元素是否具有特定的类名,但是,我需要它检查元素内的任何元素是否具有特定的类名 编辑: 我编辑这篇文章是因为人们似乎有误解。 我只需要以下代码行的帮助: if (selectionItem.classList.contains('myclass')) { 上面检查当前元素是否具有特定的类名,但我需要它检查当前元素是

我有一个包含条件语句的javascript循环。 我需要这个条件来检查循环中的当前项是否包含任何具有特定类名的元素

这是我目前拥有的,但是你会发现这是不正确的。 当前,我的条件检查当前元素是否具有特定的类名,但是,我需要它检查元素内的任何元素是否具有特定的类名

编辑: 我编辑这篇文章是因为人们似乎有误解。 我只需要以下代码行的帮助:

if (selectionItem.classList.contains('myclass')) {

上面检查当前元素是否具有特定的类名,但我需要它检查当前元素是否包含具有特定类名的任何子元素。

与其使用循环,不如使用传入的类名(前缀为
)调用在要检查的元素上返回包含该类的所有元素的集合。您可以检查结果集合的
.length
以查看找到了多少元素,并且可以在集合上循环(使用
.forEach()
)以逐个枚举它们

//查找具有myclass类的每个元素并将它们放入集合中
让matchingElements=document.querySelectorAll(“.match”);
let count=matchingElements.length;//数一数有多少
//在集合上循环
matchingElements.forEach(函数(元素){
//对正在枚举的当前元素执行任何操作
console.log(element.textContent);
});

某物

宾果游戏

答对 了 答对 了 某物

宾果游戏

答对 了 答对 了 某物

宾果游戏

答对 了 答对 了
您可以使用
.querySelector(选择器)
搜索某些
元素的子元素

!!如果在
元素
中找到与
选择器
匹配的内容,则querySelector(选择器)
将返回
true
,否则将返回
false

let elements=document.querySelectorAll('.outer');
elements.forEach(el=>{
让haschilds=!!el.querySelector('.searchClass');
log(`${el.classList[1]}的子级为.searchClass:${haschilds}`);
});

您可以使用或来检查是否有具有给定选择器的子项:

yourElements.forEach(元素=>{
if(element.querySelector(yourSelector)){
//做点什么
}否则{
//做些不同的事情
}
})
//如果没有“不同的事情”可以做,那将是这样的
yourElements.filter(elem=>!!elem.querySelector(yourSelector))
.forEach(元素=>{
//做点什么
})
你的情况可能是

selectionList.forEach(selectionItem=>{
if(selectionItem.querySelector('.myclass')){
//做点什么
}否则{
//做些不同的事情
}
})
您可以使用该属性

请看下面我的代码片段,我已经包含了一些注释

//获取父元素
var parent=document.querySelector('.parent');
//生孩子
var children=parent.children;
//运行循环并检查子类是否具有特定的类名
for(设i=0;i


//做一些事情
可能是
一些布尔值=true
。然后,如果以后出现条件
某些布尔值
,您能否详细说明我需要它来检查元素中的任何元素是否具有特定的类名
?你的意思是你还想检查
sectionItem
的子元素吗?@Kiran我编辑了我的问题,并澄清了问题,所以你需要在循环中运行另一个循环。类似于
currentElement.currentElementChildren.forEach(()=>{})
谢谢,但这不是我想要的。我认为你没有理解正确。我绝对需要这个环。“我的循环”从我的页面中获取一组具有特定类的元素,然后如果当前循环元素包含任何具有特定类名的子元素,则循环需要一个运行代码的条件。@Shtarley那么首先不应将循环放入问题中。这分散了我对实际问题的注意力。我更新了我的question@Shtarley我的回答完全符合你的要求。从具有特定类的元素集合开始(就像上面所述),然后对该集合调用
.querySelectorAll()
。不需要循环。
if (selectionItem.classList.contains('myclass')) {