Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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 如何动态创建参数';名字_Javascript_Jquery - Fatal编程技术网

Javascript 如何动态创建参数';名字

Javascript 如何动态创建参数';名字,javascript,jquery,Javascript,Jquery,我想使以下函数更通用: function addRow2(rowData) { var row = $("<tr />") $("#dataTable").append(row); row.append($("<td>" + rowData.param1 + "</td>")); row.append($("<td>" + rowData.param2 + "</td>")); row.appen

我想使以下函数更通用:

function addRow2(rowData) {
    var row = $("<tr />")
    $("#dataTable").append(row);
    row.append($("<td>" + rowData.param1 + "</td>"));
    row.append($("<td>" + rowData.param2 + "</td>"));
    row.append($("<td>" + rowData.param3 + "</td>"));
}
函数addRow2(rowData){
变量行=$(“”)
$(“#数据表”).append(行);
追加($(“”+rowData.param1+“”));
行。追加($(“”+rowData.param2+“”));
追加($(“”+rowData.param3+“”));
}
我尝试了以下方法:

function addRow1(rowData) {
    var row = $("<tr />")
    $("#dataTable").append(row);
    for (i = 1; i <= 3; i++) {
        var marker = [];
        marker[i] = 'rowData.param'+i;
        alert(marker[i]);
        row.append($("<td>" + marker[i] + "</td>"));
    }
}
函数addRow1(rowData){
变量行=$(“”)
$(“#数据表”).append(行);

对于(i=1;i,可以使用括号表示法按字符串名称访问对象属性,如下所示:

marker[i] = rowData['param' + i];
作为旁注,每次迭代都要创建一个新数组,并将属性名存储为该数组的第
i
个元素。您可以更简单地使用一个变量:

for (i = 1; i <= 3; i++) {
    var marker = rowData['param' + i];
    alert(marker);
    row.append($("<td>" + marker + "</td>"));
}

对于(i=1;i您可以使用
$。每个
都可以从rawData获取所有属性,这样您就不必依赖
param1、param2
并使用有意义的对象属性

function addRow2(rowData) {
    var row = $("<tr />")
    $("#dataTable").append(row);
    $.each(rowData, function (prop, value) {
        row.append($("<td>" + value + "</td>"));
    });
}
函数addRow2(rowData){
变量行=$(“”)
$(“#数据表”).append(行);
$.each(行数据、函数(属性、值){
行。追加($(“”+value+“”);
});
}

为什么要创建数组?您的代码不能简化为:

function addRow1(rowData) {
    var row = $("<tr />")
    $("#dataTable").append(row);
    for (i = 1; i <= 3; i++) {
        row.append($("<td>" + rowData['param' + i] + "</td>"));
    }
}
函数addRow1(rowData){
变量行=$(“”)
$(“#数据表”).append(行);

对于(i=1;i在此上下文中“r”是什么?如果希望按特定顺序迭代键,这不是一个好主意。如果顺序不重要,则可能是一个好主意。我认为重点是在
param[1,2,3]中打印数据
并且不打印。否-如果您查看原始代码,循环的每次迭代都会重新创建数组。我现在看到他正在尝试从rowData中获取数据。所以实际上是$(''+rowData['param'+I]+'')是他想要的。仍然没有理由创建一个数组。如果那真的是他想要的…他写的代码就是这样做的,这里的问题就不需要了。
function addRow1(rowData) {
    var row = $("<tr />")
    $("#dataTable").append(row);
    for (i = 1; i <= 3; i++) {
        row.append($("<td>" + rowData['param' + i] + "</td>"));
    }
}