【问题标题】:.contains() does not accept as arguments an element of array when looping.contains() 在循环时不接受数组元素作为参数
【发布时间】:2019-09-24 02:03:32
【问题描述】:

我正在循环浏览 HTML 元素并检查它们是否包含我的意大利语月份数组的元素。 问题是当我尝试使用月 [i] 访问数组元素时,什么也不返回,当我写例如月 [2] 时,它返回 true。我想符号月[i] 不能用于包含。有人解决。我的代码在下面。谢谢。

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);
        }
    }

【问题讨论】:

  • 我没有完全理解您的问题,但您无法成功比较它的原因可能是您正在检查一项与另一项而不是整个数组。
  • contains 应该与classList 一起使用。欺骗目标不是正确的答案。
  • @Archer 错了。她已经使用了contains
  • 看起来,您需要另一个循环用于月份数组并检查。如果您添加检查的目的,则可以写得更短,具体取决于进一步的操作。
  • @Nina 当我将变量作为参数传递时它可以工作,这没有问题,但是当我作为数组的参数元素传递时,[i] - 迭代器无法识别,或者存在另一个我必须使用的符号,我不知道。

标签: javascript arrays contains


【解决方案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]));
}
&lt;div id="div1" class="Marzo Maggio"&gt;&lt;/div&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    • 2012-01-14
    • 2022-01-11
    • 2012-07-04
    相关资源
    最近更新 更多