Javascript Force.append()在每次迭代时实际追加,而不只是覆盖上一次迭代
我的代码通过一个js arrray\对象循环,以便在某些文本区域中附加一些存储值,但是,它只是附加上一次迭代。(或覆盖而不是在每次迭代中追加。) 我尝试过这里提到的所有解决方案:在我的研究期间,但没有运气Javascript Force.append()在每次迭代时实际追加,而不只是覆盖上一次迭代,javascript,jquery,append,Javascript,Jquery,Append,我的代码通过一个js arrray\对象循环,以便在某些文本区域中附加一些存储值,但是,它只是附加上一次迭代。(或覆盖而不是在每次迭代中追加。) 我尝试过这里提到的所有解决方案:在我的研究期间,但没有运气 for (var j = 0; j < data['formValues'][0].length; j++) { //start appending on certain fields only if (data['formValues'][0][j]['name
for (var j = 0; j < data['formValues'][0].length; j++) {
//start appending on certain fields only
if (data['formValues'][0][j]['name'] == 'DynamicTextBox') {
var k = j;
//l can't be larger than array length
var l = k + 1;
if (l === data['formValues'][0].length) {
l = data['formValues'][0].length - 1;
//compensate for loop increment
k--;
//render
$("#TextBoxContainer").append(
'<div><textarea name="DynamicTextBox" rows="5">' + data['formValues'][0][k]['value'] + '</textarea>' + '<textarea name="DynamicTextBox" rows="5">' + data['formValues'][0][l]['value'] + '</textarea>' + '<button type="button" value="Remove" class="remove">Remove</button></div>'
);
}
}
}
for(var j=0;j
提前感谢。您的问题不是
append()
,而是如何处理k
和l
变量。具体地说,在最后一个循环中只执行一次append,因为您选中了(l==data['formValues'][0].length)
,这仅在最后一次迭代中是正确的
如果每次迭代只需要一个文本框,请删除所有k和l内容,然后执行以下操作:
for (var j = 0; j < data['formValues'][0].length; j++) {
//start appending on certain fields only
if (data['formValues'][0][j]['name'] == 'DynamicTextBox') {
$("#TestTextBoxContainer").append(data['formValues'][0][j]['value'] + ' ');
//render
$("#TextBoxContainer").append(
'<div><textarea name="DynamicTextBox" rows="5">' + data['formValues'][0][j]['value'] + '</textarea>' + '<button type="button" value="Remove" class="remove">Remove</button></div>'
);
}
}
for(var j=0;j
append()
不会覆盖任何内容。如果这是您看到的行为,那么肯定有其他一些逻辑干扰您的数组或附加到的元素。您能否编辑您的问题,以包含该问题的工作示例。该dzone链接中的所有示例都使用闭包/延迟执行/异步代码(例如setTimeout)。您提供的内容中没有异步代码,所以这不是原因。这是一个简单的检查,就在您的.append
addconsole.log(j,k,l,data['formValues'][0][k]['value'])之前,并查看它出现了多少次-如果它以不同的值多次出现,则您有一个覆盖场景(如前所述,.append()
是不可能的)。如果它使用相同的值多次出现,则链接中存在问题。如果它只出现一次(此处的情况就是这样),则这是一个简单的逻辑问题(在.append之前的==
)。