.every方法不匹配IF语句的所有元素

时间:2015-01-20 12:06:08

标签: javascript dom

我有一个函数,用于扫描表格中的td元素的子元素,用于字符串" green.png"在"列"中声明的列中阵列。然后它将结果传递给一个函数,该函数根据结果重新排序表。

我正在使用.every方法来确保所选列中的所有子元素都包含" green.png"在执行之前,它会在任何列包含此值时执行。

我对.every方法的理解是它将确保在执行之前数组中的每个对象都满足条件,但这不会发生。有人可以告诉我的代码缺少/不正确吗?

以下是解析元素的代码:

function checkRowGreen(tenant) {
    var columns = ["COLUMN1", "COLUMN2", "COLUMN3", "COLUMN4", "COLUMN5"]; 
    var count = 0;
    columns.every(function(column) {
        var element = document.getElementById(tenant + column);
        if(element != null && element.firstElementChild != null && element.firstElementChild.src.indexOf('green.png') > -1) {
            console.log("[INFO] Found successful PNG on " + tenant + " column " + column + " - found " + count);
            count++;
        }
    });
    return count > 0;
}

这是重新排序表的代码:

if(checkRowGreen(tenant)) {
    var row = document.getElementById(tenant + "Row");
    var table = document.getElementById("tenantTable");
    if(row == null || table == null) return true;
    var cells = row.getElementsByTagName("td");
    table.deleteRow(row.rowIndex);
    var newRow = table.insertRow(-1);
    newRow.id = rowID;
    for(var i = cells.length-1; i >= 0; i--) {
        bugout.log("[INFO] inserting cell.." + i + " out of " + cells.length);
        var newCell = newRow.insertCell(0);
        newCell.innerHTML = cells[i].innerHTML;
        newCell.id = cells[i].id;
    }
}

1 个答案:

答案 0 :(得分:0)

语法应该是这样的:

if(myArray.every(myFuncName))
{
    ...
}

var result = myArray.every(myFuncName);

var result = mArray.every(element => element.age >= 5);