我有以下功能,我想更通用:
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>"));
}
我尝试了以下方法:
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>"));
}
}
但是,它不是rowData.param1
... 3
的值,而是打印&#34; rowData.param1&#34;,&#34; rowData.param1&#34;和&#34; rowData.param1&#34;。
答案 0 :(得分:8)
您可以使用括号表示法按字符串名称访问对象属性,如下所示:
marker[i] = rowData['param' + i];
作为旁注,您每次迭代都会创建一个新数组,并将您的属性名称存储为该数组的i
元素。您可以更简单地使用变量:
for (i = 1; i <= 3; i++) {
var marker = rowData['param' + i];
alert(marker);
row.append($("<td>" + marker + "</td>"));
}
或者单行:
for (i = 1; i <= 3; i++) {
row.append($("<td>" + rowData['param' + i] + "</td>"));
}
答案 1 :(得分:0)
您可以使用$.each
从rawData获取所有属性,这样您就不必依赖param1, param2
并使用有意义的对象属性。
function addRow2(rowData) {
var row = $("<tr />")
$("#dataTable").append(row);
$.each(rowData, function (prop, value) {
row.append($("<td>" + value + "</td>"));
});
}
答案 2 :(得分:-1)
为什么要创建数组?您的代码无法简化为:
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip