2

我目前正在使用 for 循环创建 div。

问题是当我尝试为在 for 循环中创建的每个 div 元素分配一个唯一的 id 时。

我越来越近了,但目前计数从 36 开始,而不是 1。

非常感谢你的帮助!

这是我的html:

<!DOCTYPE html>
<html>
<head>
<title>Intro Webpage!</title>

<meta charset="UTF-8" /> 
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0; target-densitydpi=device-dpi" />
<link rel="stylesheet" type="text/css" href="style.css"/>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
</body>
</html>

现在,这是我的 script.js:

for(i = 0; i < 35; i++) {
$(document).ready(function(){
    $('body').append('<div id="div'+ (i++) +'" />');
});
}

另外,我的CSS:

div {
width: 167px;
height: 167px;
border-radius: 10px;
background-color: #ff0000;
display: inline-block;
margin-left: 5px;
}
4

4 回答 4

4

loop in side document.ready instead of putting document.ready in loop还需要添加您可能不需要i在循环体内增加,因为它increamented在循环签名中。您可以在此处阅读有关 document.ready的更多信息

$(document).ready(function(){
  for(i = 0; i < 35; i++) {
    $('body').append('<div id="div'+ i +'" />');
  }
});
于 2012-12-11T05:17:10.603 回答
3

所有提供的答案都可以完成这项工作,但如果你想让它更快,你可以这样做。此外,如果您希望divid 以 1 开头,您应该这样做++i而不是i++. i++没有意义,因为这是由for loop自动完成的。

$(document).ready(function() {
    var divsToAppend = "";
    for (i = 0; i < 35; i++) {
        divsToAppend += '<div id="div' + (++i) + '" />';        
    }
    $('body').append(divsToAppend);
});​​
于 2012-12-11T05:23:44.937 回答
2

尝试:

$(document).ready(function(){
    var html='';
    for(i = 0; i < 35; i++) {
        html += '<div id="div'+ i +'" />';
    }
    $('body').append(html);
});
于 2012-12-11T05:17:41.437 回答
1

将 $(document).ready 从循环中拿出来供初学者使用。

$(document).ready(function() {
    // do loop here
}    
于 2012-12-11T05:17:17.223 回答