如何在同一个变量内合并?

时间:2019-05-16 04:22:57

标签: javascript

假设我在下面具有此功能:

function highlightRed() {
    setTimeout(function() {
        var grid = $("#grid1").data("kendoGrid");
        var data = grid.dataSource.view();

        $.each(data, function (i, row) {
            var element = $('tr[data-uid="' + row.uid + '"] ');
            if (row.active == "n") {
                $(element).css("background-color", "#F99AA1"); 
            }
        });
    }, 10);
}

在此函数中,我已经分配了var grid = $("#grid1").data("kendoGrid");,但是现在我有多个gridID。

var grid = $("#grid1").data("kendoGrid"); 
var grid = $("#grid2").data("kendoGrid"); 
var grid = $("#grid3").data("kendoGrid"); 
var grid = $("#grid4").data("kendoGrid");

如何在同一函数中将其组合并使用相同的变量grid?相反,我创建了另一个函数。

4 个答案:

答案 0 :(得分:0)

您可以将动态数字作为参数传递给函数:

function highlightRed(num) {
    setTimeout(function() {
        var grid = $("#grid" + num).data("kendoGrid");
        var data = grid.dataSource.view();

        $.each(data, function (i, row) {
            var element = $('tr[data-uid="' + row.uid + '"] ');
            if (row.active == "n") {
                $(element).css("background-color", "#F99AA1"); 
            }
        });
    }, 10);
}

并调用以下函数:

highlightRed(1);
highlightRed(2);
highlightRed(3);
highlightRed(4);

答案 1 :(得分:0)

您可以使用forEach循环在一系列类似的事物上运行相同的代码。

var grids = [ $("#grid1"), $("#grid2"), $("#grid3"), $("#grid4") ]
grids.forEach(function(grid) {
    var data = grid.dataSource.view();
    // .. etc ..
})

Array forEach docs

答案 2 :(得分:0)

您可以使用[id^=grid] CSS选择器来选择所有以“ grid”开头的元素:

function highlightRed() {
  setTimeout(function() {
    var grid = $("[id^=grid]").data("kendoGrid");
    var data = grid.dataSource.view();
    $.each(data, function (i, row) {
      var element = $('tr[data-uid="' + row.uid + '"] '); 
        if (row.active == "n") {
          $(element).css("background-color", "#F99AA1");
        }
      });
    }, 10);
 }

答案 3 :(得分:0)

您不能将对象合并到一个变量中(未经处理)

如果您具有html字符串,并且想要将该html连接到现有的html字符串,则可以使用+运算符来实现此目的。

var grid =''; grid + ='您的循环处理后的字符串值'。

我希望这就是你要的