目前,我正在努力处理一些jQuery数组遍历问题。我有一些这样的数据--
我想要的-是遍历这个数组,并将值添加到一个html表中。
就像--
Product Unit Price Quantity Total
-----------------------------
------------------------------------
--------------------------
--------------------------
我写的代码是
parseRowData() {
var htmlApp = "";
$.each(this.dTable, function (ind, val) {
//var varArr = new Array();
//varArr.push(val);
htmlApp += "<tr><td>" + val[ind]["product"] + "</td><td>" + val[ind]["unitprice"] + "</td><td>" + val[ind]["quantity"] + "</td><td>" + val[ind]["total"] + "</td></tr>";
$("invTable tbody").appendTo(htmlApp);
});
}
最初,我也尝试使用简单的for循环,但没有得到正确的结果。空表或具有重复多次的相同数据行的表。请在构建循环逻辑方面给我一点帮助。
发布于 2018-06-24 04:35:26
我认为一个恰当的答案是正确的。
知道console.log(val)
返回正确的内容(参见https://pasteboard.co/HrgUGv8.png),我们也知道val
是一个对象。
然后,您可以通过执行val.product
、val.unitprice
等调用该对象的每个属性。
您将在htmlApp
变量中连接新创建的行。
完成$.each循环后,需要将它们插入到$("invTable tbody")
中。所以:
$.each(this.dTable,function (ind,val) {//你的所有建筑都在这里});$("invTable tbody").html(htmlApp);
执行此操作时,您将用在htmlApp
中连接的所有行替换<tbody>
的全部内容。
更多信息:如果想要将行单独添加到表中,可以在循环中完成,但不能在htmlApp中连接它们。
您将执行以下操作:
$.each(this.dTable, function (ind, val) {
htmlApp = "<tr><td>" + val.product + "</td>... so on and so forth</tr>";
$("invTable tbody").append(htmlApp);
});
注意,我使用的是append
而不是appendTo
。
最后..。invTable
不是一个超文本标记语言元素,所以我猜它要么是一个类,要么是一个ID。如果它是一个类,你需要在选择器中指明:$(".invTable tbody")
。如果是ID,则使用$("#invTable tbody")
https://stackoverflow.com/questions/51004423
复制相似问题