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