在我的 js 中,我得到一个列表“数据”,如下所示:
data = {test: 'test', test2:'test2', test3 : buffer}
我的“缓冲区”具有以下形式:
buffer =[{testa: 'testa', testb : 'testb'}, {testc: 'testc', testd : 'testd'}, {teste: 'teste', testf : 'testf'} ... ]
我想做的是对于缓冲区的每个元素,使用它包含的数据并像这样进行附加。
$('.try').append('<div> <p> '+testa+' </p> <p> '+testb+' </p> <div>')
$('.try').append('<div> <p> '+testc+' </p> <p> '+testd+' </p>)
...
html:
<div class='try' >
知道如何做到这一点吗?
我知道我可以使用“data.buffer”访问“buffer”。但是,我需要使用“buffer”的每个元素创建一个循环,然后对于缓冲区的每个元素,提取其中的数据并创建一个新的 div...
非常欢迎任何帮助。
编辑: 这是我尝试过的:
for (var i in data.buffer) $('.try').append('<div> <p> '+i.testa' </p> <p> '+i.testb' </p> </div>')
但是这不起作用。
最佳答案
使用 $.each
迭代您的对象..
试试这个
var buffer=[{testa: 'testa', testb : 'testb'},
{testc: 'testc', testd : 'testd'},
{teste: 'teste', testf : 'testf'}];
var html = '';
$.each(buffer ,function(i, v){ // Iterate over the Array
html += '<div>' ;
$.each(v, function(j,value) { // Iterate over each object
html += '<p> '+ value+' </p>' ;
});
html += '</div>' ;
});
$('.try').append(html);
<强> Check Fiddle
更新
对于您要求的第二种格式..删除最里面的$.each
var html = '';
$.each(buffer, function(i, v) { // Iterate over the Array
html += '<div>';
var k = 0;
$.each(v, function(j, value) { // Iterate over each object
if (k == 0) {
html += '<p> ' + value + ' </p>';
}
else {
html += '<img src="' + value +'" />';
}
k++;
});
html += '</div>';
});
$('.try').append(html);
<强> Fiddle
关于javascript - 从列表中的列表中提取信息。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13479073/