我搜索了互联网,人们建议使用数组然后做arr.join()但是有些人认为它在firefox中速度较慢,这是正确的方法吗?
$.each(data.rows, function (i) {
var row = data.rows[i];
var htmlRow = '<div class="colour"><img src="' + row[3] + '" alt="' + row[1] + '" /><span>' + row[1] + '</span> <input type="hidden" value="' + row[4] + '"/></div>';
htmlRow = htmlRow + '<div class="products">';
for (var k = 6; k < row.length; k++) {
htmlRow = htmlRow + $('#product').jqote(row[k], '*');
}
htmlRow = htmlRow + '</div>';
$('.body-holder').append('<div class="holder">' + htmlRow + '</div>');
});
由于
答案 0 :(得分:1)
我建议使用jquery中的tmpl()等模板引擎。它可能并不比你正在做的快,但性能差异是微不足道的。如果没有适当的模板工具,那么构建html的方式(就像你正在做的那样)可能会非常难看。
答案 1 :(得分:0)
Dan是对的,使用jQuery Templates是可行的方法。以下是一些示例代码,可帮助您了解它的强大程度:
<!-- SAMPLE TEMPLATE -->
<script id="myTemplate" type="text/html">
<li class="activity exceptionManager-observation">
<hr />
<table>
<tr>
<td valign="top">
<img class="icon" src="Includes/Images/symbol_error.png" alt="" border="0" />
</td>
<td align="left" valign="top">
<div class="date">${Date}</div>
<div class="rank">${ProjectNumber}</div>
<div class="message">${Message}</div>
</td>
</tr>
</table>
</li>
</script>
<script type="javascript">
var record = {ProjectNumber: '1234', Message: 'This is my rifle! This is my gun!'};
/// <summary>Append's a record into the UI.</summary>
function Append(record) {
try {
var template = $('#myTemplate').tmpl(record);
template.prependTo('#someListInMyPage');
}
catch (err) {
alert(err);
}
}
</script>