Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.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 Can';按indexOf()搜索数组_Javascript - Fatal编程技术网

Javascript Can';按indexOf()搜索数组

Javascript Can';按indexOf()搜索数组,javascript,Javascript,我尝试将一系列具有相同类的DOM元素放入数组中,然后尝试使用.indexof()查找其中一个元素所在的索引。然而,它似乎不起作用。我写错什么了吗?或者应该有其他方法可以找到数组中元素的索引 下面是一段代码 window.onload = function(){ var addBtn = document.querySelectorAll(".add"); for(var i = 0; i < addBtn.length; i++){ addBtn[i].on

我尝试将一系列具有相同类的DOM元素放入数组中,然后尝试使用.indexof()查找其中一个元素所在的索引。然而,它似乎不起作用。我写错什么了吗?或者应该有其他方法可以找到数组中元素的索引

下面是一段代码

window.onload = function(){
    var addBtn = document.querySelectorAll(".add");
    for(var i = 0; i < addBtn.length; i++){
        addBtn[i].onclick = addTime;
    }
};

function addTime(){
    var update = parseInt(this.parentElement.getElementsByTagName("SPAN")[0].innerHTML) + 1;
    var digits = this.parentElement.parentElement.querySelectorAll(".digit");
    if(digits.indexOf(this.parentElement) % 2){ //Uncaught TypeError: digits.indexOf is not a function

    }else{
        carryOn(this, update);
    }
}
window.onload=function(){
var addBtn=document.querySelectorAll(“.add”);
对于(变量i=0;i

它一直告诉我“uncaughttypeerror:digits.indexOf不是一个函数”

querySelectorAll
返回a,它是一个类似数组的对象,而不是实际数组。它没有
方法的
索引

你可以:

  • 在数组上强制转换数组方法,例如by
    array.prototype.indexOf.call(digits,…)

  • 通过
    array.from(数字)
    生成一个实数组


  • indexOf
    array
    的原型,而不是
    doElement节点列表的原型@雷昂达布或乔纳坦洛诺夫斯基哦,是的!或
    […位]
    (ES6)