嗨,伙计们,我有一个数组,我正在试图附加到DOM!以下是代码:
function inputFeedContent(data){
for(var k=0; k < columns; k++) {
var col = "<div class='col-1'>";
for(var j=0; j < data.sample[k].length; j++) {
col += "<p>"+data.sample[k][j]+"</p>";
}
col += "</div>";
$('.sliding-window').append(col);
}
}其中列= 12。
问题是我只得到了其中的五个:
<div class="col-1">
<p>Some text</p>
</div>我在这里做错什么了?记住,我是个菜鸟:)
谢谢!
发布于 2013-01-08 21:38:06
我认为您正在尝试分别打印每一列,因此而不是逐行打印。试试这个:
function inputFeedContent(data) {
for(var k=0; k < columns; k++) {
var col = "<div class='col-1'>";
for(var j=0; j < data.sample.length; j++) {
col += "<p>"+data.sample[j][k]+"</p>";
}
col += "</div>";
$('.sliding-window').append(col);
}
}发布于 2013-01-08 20:41:24
如果data没有包含正确的列数,您将得到错误,它将停止添加到您的页面。您可以使用以下内容确保正确初始化列:
function inputFeedContent(data){
var sampleData = data.sample || [];
for(var k=0; k < columns; k++) {
var col = "<div class='col-1'>";
var columnData = sampleData[k] || [];
for(var j=0; j < columnData.length; j++) {
col += "<p>"+columnData[j]+"</p>";
}
col += "</div>";
$('.sliding-window').append(col);
}
}...But很可能一开始就不支持这种情况,您应该抛出一个错误:
function inputFeedContent(data){
var sampleData = data.sample || [];
if(sampleData.length != columns){
throw "inputFeedContent: Sample data does not have the right number of columns.";
}
..//Your code
}发布于 2013-01-08 20:42:43
可能是您的数组没有12列,所以不要将列定义为全局变量,尝试如下
function inputFeedContent(data){
var col=[];
for(var k=0; k < data.sample.length; k++) {
col.push("<div class='col-1'>");
for(var j=0; j < data.sample[k].length; j++) {
col.push("<p>"+data.sample[k][j]+"</p>");
}
col.push("</div>");
}
$('.sliding-window').append(col.join(''));
}我还建议您避免字符串连接,因为它在循环中效率不高,并通过将它保持在循环之外进行一次dom访问。
https://stackoverflow.com/questions/14223464
复制相似问题