2015-09-28 49 views
-1

我有低于9个字符串的数组:如何追加在阵列ID来的DIV与JavaScript

var boardBox = ['#box1', 
       '#box2', 
       '#box3', 
       '#box4', 
       '#box5', 
       '#box6', 
       '#box7', 
       '#box8', 
       '#box9']; 

欲每个ID附加到被动态添加到DOM如下

9倍的DIV
for (var i = 0; i < 9; i++){ 
     $(".row").append("<div class='col-md-4'></div>"); 
    } 

是追加的方式来做到这一点?我试过了,没有运行。我试图

$(".row").text(boardBox[i]).appendTo('<div></div>'); 
+1

尝试, 为(VAR I = 0;我

”); } – syms

+1

你真的想在ID中使用'#',或者因为它是你在数组中添加的ID – Tushar

回答

1

var boardBox = ['#box1', 
 
    '#box2', 
 
    '#box3', 
 
    '#box4', 
 
    '#box5', 
 
    '#box6', 
 
    '#box7', 
 
    '#box8', 
 
    '#box9']; 
 
var html = ''; 
 
for (var i = 0; i < boardBox.length; i++) { 
 
    html += "<div id="+boardBox[i]+ " class='col-md-4'>"+boardBox[i]+"</div>" 
 
} 
 

 
$(".row").append(html);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="row"></div>

+0

现在,随着答案被接受,付出了一些努力来解释它,因为OP似乎是天真的 – Tushar

2

可以使用i通过索引来访问数组元素并连接作为要附加DIV的内容一行值:

for (var i = 0; i < 9; i++){ 
    $(".row").append("<div class='col-md-4' >" + boardBox[i] + "</div>"); 
} 
+0

你可以将'append'移动到'for'之外吗,它可以节省8个DOM操作 – Tushar

+0

@Tushar : 怎么来的?? op还需要在每次迭代中追加内容。 –

+0

'var str ='';对于(var i = 0; i <9; i ++){ str + =“

" + boardBox[i] + "
”; } $('。row')。append(str);' – Tushar

1

相反的另一个for循环,你可以使用它喜欢:

$.each(boardBox, function(i, id){ // get the each id here 
    $('<div>', { 
     id: id, // apply it here 
     class:"col-md-4", 
     text:"test div" 
    }).appendTo('.row'); // append element here. 
}); 
+0

你可以移动每个''外部的'appendTo',它会保存8个DOM操作 – Tushar

+2

@Tushar不会产生任何问题,因为今天的浏览器太快了,这不是问题。 – Jai

+0

我不是在谈论问题在这里,我在谈论_optimization_,如果OP想要添加100s的div如何 – Tushar

1

您可以使用appendTo()

var boardBox = ['#box1', 
 
    '#box2', 
 
    '#box3', 
 
    '#box4', 
 
    '#box5', 
 
    '#box6', 
 
    '#box7', 
 
    '#box8', 
 
    '#box9' 
 
]; 
 

 
boardBox.forEach(function(v) { 
 
// iterating over array 
 
    $('<div/>', { 
 
    text: v, 
 
    id: v 
 
    }) 
 
    // generating element with content and id as array value 
 
    .appendTo('.row'); 
 
    // appendding div to '.row' 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class=row></div>