大家好我有一个数组,我正试图附加到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>
我在这里做错了什么?请记住我是菜鸟:)
谢谢!
答案 0 :(得分:1)
我认为你试图分别打印每一列,因此不是一排一排。 试试这个:
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);
}
}
答案 1 :(得分:0)
如果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);
}
}
...但是可能不应该支持这种情况,你应该抛出一个错误:
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
}
答案 2 :(得分:0)
可能是你的数组没有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访问。