2016-02-27 57 views
1

第一個問題在這裏!希望您能夠幫助我。我試圖使用Javascript while循環並排使用16個方塊,但我不明白爲什麼它不起作用。我是Javascript和jQuery的新手,如果答案太簡單,請原諒我。先謝謝你。while循環和jquery追加不起作用

$(document).ready(function() { 
 
    var divs = $("<div class='square'></div>"); 
 
    var i = 0; 
 
    while (i < 17) { 
 
    $("#wrapper").append(divs); 
 
    i++; 
 
    } 
 

 
});
#wrapper { 
 
    width: 600px; 
 
    margin: 70px auto; 
 
} 
 
.square { 
 
    width: 40px; 
 
    height: 40px; 
 
    display: inline-block; 
 
    border: 1px solid black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<body> 
 
    <div id="wrapper"> 
 

 
    <div class="square"></div> 
 

 
    </div> 
 
</body>

強大的文本

+0

沒有for循環,我們可以看到。你的意思是while循環嗎? –

+0

標題中提到的'for'循環在哪裏? –

回答

1

在循環中,在每次迭代中,你需要創建一個新的對象,否則它會成爲像更換相同的元素很多次

所以你可以只是clone()循環中的元素

$(document).ready(function() { 
 
    var divs = $("<div class='square'></div>"); 
 
    var i = 0; 
 
    while (i < 17) { 
 
    $("#wrapper").append(divs.clone()); 
 
    i++; 
 
    } 
 

 
});
#wrapper { 
 
    width: 600px; 
 
    margin: 70px auto; 
 
} 
 
.square { 
 
    width: 40px; 
 
    height: 40px; 
 
    display: inline-block; 
 
    border: 1px solid black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div id="wrapper"> 
 

 
    <div class="square"></div> 
 

 
</div>

0

更新這部分代碼:

var divs = "<div class='square'></div>"; 

因此您的代碼將是:

$(document).ready(function() { 
 
    var divs = "<div class='square'></div>"; 
 
    var i = 0; 
 
    while (i < 17) { 
 
    $("#wrapper").append(divs); 
 
    i++; 
 
    } 
 

 
});
#wrapper { 
 
    width: 600px; 
 
    margin: 70px auto; 
 
} 
 
.square { 
 
    width: 40px; 
 
    height: 40px; 
 
    display: inline-block; 
 
    border: 1px solid black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<body> 
 
    <div id="wrapper"> 
 

 
    <div class="square"></div> 
 

 
    </div> 
 
</body>

0

呦ü要追加DIV所以只是

改變你的代碼編寫HTML代碼的div VAR到

var divs = "<div class='square'></div>" 

而不是

var divs = $("<div class='square'></div>");