.contains()在循环时不接受数组元素作为参数

3
我正在循环遍历HTML元素,并检查它们是否包含我的意大利月份数组的元素。 问题在于当我尝试使用month[i]访问数组元素时,没有返回值,而当我写入例如month[2]时,它会返回true。 我认为使用month[i]表示法无法被contains函数接受。 有人有解决办法吗? 我的代码如下。谢谢。
const months = ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"];


for(i = 0; i < tdCellBody.length; i++){
        if(tdCellBody[i].classList.contains(months[i])) {
            console.log(true);
        } else {
            console.log(false);
        }
    }

我没有完全理解你的问题,但你无法成功比较的原因可能是你正在将一个项目与另一个项目进行比较,而不是与整个数组进行比较。 - Shail_bee
contains 应该与 classList 一起使用。重复的目标不是正确的答案。 - Nina Scholz
看起来你需要为月份数组再加一个循环进行检查。如果你添加一个检查的目的,根据进一步的操作,代码可以写得更短。 - Nina Scholz
@Nina 当我将一个变量作为参数传递时,它可以正常工作,这没有问题。但是当我将数组元素 [i] 作为参数传递时,迭代器未被识别,或者我必须使用另一种符号表示法,而我不知道应该用哪种。 - Ivana
@NIna,很不幸我没有HTML代码,因为所有数据都是由JS脚本生成的。这只是一个复杂日历项目中的小代码片段。 - Ivana
显示剩余2条评论
1个回答

1

这个例子只使用一个节点来检查一组给定的值。

var months = ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"],
    node = document.getElementById('div1'),
    j;

for (j = 0; j < months.length; j++) {
    console.log(months[j], node.classList.contains(months[j]));
}
<div id="div1" class="Marzo Maggio"></div>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接