我想将一个 jqueryeach
循环的结果连接到另一个循环中,但没有得到我期望的结果。
$.each(data, function () {
counter++;
var i = 0;
var singlebar;
var that = this;
tableRow = '<tr>' +
'<td>' + this.foo + '</td>' + //<---- should terminate this instead
$.each(this.bar, function(){
singlebar = '<td>' + that.bar[i].baz + '</td>';
tableRow += singlebar;
console.log(singlebar); // outputs "<td>the correct data</td>"
});
'</tr>';
$(tableRow).appendTo('#mainTable > tbody');
});
嵌套内的部分each
不会添加到返回的字符串中。
我可以console.log(singlebar)
在控制台中得到预期的结果,但我不能在主each
循环中连接这些结果。
我也试过:
$.each(this.bar, function(){
tableRow += '<td>' + that.bar[i].baz + '</td>';
});
这也没有添加所需的内容。
如何迭代这些嵌套数据并将其添加到主each
语句正在构建的表中间?
解决方案(感谢 sushanth reddy)
我不应该继续尝试以这种方式连接。我应该在tableRow
创建字符串时添加每个部分,而不是一次全部添加。更像是:
tableRow = '<tr>' +
'<td>' + this.foo + '</td>';
$.each(this.bar, function(){
singlebar = '<td>' + that.bar[i].baz + '</td>';
tableRow += singlebar;
});
tableRow += '</tr>';