以更好的方式从数组生成html

时间:2012-07-30 21:56:39

标签: javascript jquery html

假设我有一系列Customer结构,我需要从中生成HTML。

目前我这样做:

jQuery.each(customers, function(index, item) {
     html =+ "<tr custID='" + item.ID + "'><td>" + item.Name + "</td><td>" + item.City + "</td></tr>";  
});

这里的问题是我手动添加custID属性。 我相信很酷的方法是使用jQuery的Data函数。

但是我如何在这种情况下使用它呢?

3 个答案:

答案 0 :(得分:2)

优雅的方法不是将这些html标签附加为文本,而是使用

创建元素
document.createElement("tr");

您可以修改其属性,然后将其附加到html文件。

在这里阅读更多内容:

jQuery document.createElement equivalent?

答案 1 :(得分:1)

只需在属性前添加data-

jQuery.each(customers, function(index, item) {
  html += "<tr data-custID='" + item.ID + "'><td>" + item.Name + "</td><td>" + item.City + "</td></tr>";  
});

现在,您可以使用jQuery中的方法访问数据。

(我将不存在的=+运算符更改为+=。猜猜这只是问题中的拼写错误。)

答案 2 :(得分:0)

您可以使用数据网格我认为它比手动创建表格要凉爽得多。但在你的情况下,你必须使用append()函数。

以下是很好的例子: http://jquery-howto.blogspot.com/2009/02/add-table-row-using-jquery-and.html http://api.jquery.com/append/