有人能帮我写这段代码吗?我试图用jquery填充我的DIVs,但它看起来编译器从来没有进入"each“循环,当我在浏览器中运行时,只出现我的css框。我试着在each之前输入任何代码,它运行正常,问题只在each中。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<title>Memoria</title>
<style>
#tablero{
width: 650px;
margin: 10px auto;
}
.cartas{
border-radius:1em;
border:3px solid white;
background-color:#F93;
cursor:pointer;
display:inline-block;
height:110px;
width:110px;
margin:.3em;
overflow:hidden;
vertical-align:top;
}
#tiempo{
float:left;
font-size:30px;
}
#score{
float:right;
font-size:30px;
}
#tablero p
{
color: #FFFFFF;
margin-top:1.2em;
text-align: center;
z-index: -1;
font-size:30px;
display: inline-block;
}
</style>
<script>
$(document).ready(inicio());
function inicio(){
cargaCartas();
}
function cargaCartas(){
var cartas_array=new Array();
var num=0;
var n=0;
var i=1;
cartas_array.push({c:"8+4", r:12});
cartas_array.push({c:"12", r:12});
cartas_array.push({c:"10/2", r:5});
cartas_array.push({c:"5", r:5});
cartas_array.push({c:"8-4", r:4});
cartas_array.push({c:"4", r:4});
cartas_array.push({c:"2*3", r:6});
cartas_array.push({c:"6", r:6});
cartas_array.push({c:"5+5", r:10});
cartas_array.push({c:"10", r:10});
cartas_array.push({c:"10-9", r:1});
cartas_array.push({c:"1", r:1});
cartas_array.push({c:"1+1", r:2});
cartas_array.push({c:"2", r:2});
cartas_array.push({c:"10-7", r:3});
cartas_array.push({c:"3", r:3});
cartas_array.push({c:"4+3", r:7});
cartas_array.push({c:"7", r:7});
cartas_array.push({c:"16/2", r:8});
cartas_array.push({c:"8", r:8});
$('.cartas').each(function(i){
num=cartas_array.length;
n=Math.floor(Math.random()*num);
$(this).html("<p>"+cartas_array[n].c+"</p>");
});
};
</script>
</head>
<body>
<div id="tablero">
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<br>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<br>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<br>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<br>
<div id="marcador">
<div id="tiempo">00:00:00</div>
<div id="score">Score: 0</div>
</div>
</div>
</body>
发布于 2016-05-19 08:08:15
回调语法不正确。
替换
$(document).ready(inicio());使用
$(document).ready(inicio);请注意, .ready() 需要一个回调函数作为引用,而不是直接在那里执行它。
还要注意,您的代码缺少一个结束的HTML标记- </html>
请阅读:.ready() | jQuery API Documentation
修复版本:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<title>Memoria</title>
<style>
#tablero{
width: 650px;
margin: 10px auto;
}
.cartas{
border-radius:1em;
border:3px solid white;
background-color:#F93;
cursor:pointer;
display:inline-block;
height:110px;
width:110px;
margin:.3em;
overflow:hidden;
vertical-align:top;
}
#tiempo{
float:left;
font-size:30px;
}
#score{
float:right;
font-size:30px;
}
#tablero p
{
color: #FFFFFF;
margin-top:1.2em;
text-align: center;
z-index: -1;
font-size:30px;
display: inline-block;
}
</style>
<script>
$(document).ready(inicio);
function inicio(){
cargaCartas();
}
function cargaCartas(){
var cartas_array=[];
var num=0;
var n=0;
var i=1;
cartas_array.push({c:"8+4", r:12});
cartas_array.push({c:"12", r:12});
cartas_array.push({c:"10/2", r:5});
cartas_array.push({c:"5", r:5});
cartas_array.push({c:"8-4", r:4});
cartas_array.push({c:"4", r:4});
cartas_array.push({c:"2*3", r:6});
cartas_array.push({c:"6", r:6});
cartas_array.push({c:"5+5", r:10});
cartas_array.push({c:"10", r:10});
cartas_array.push({c:"10-9", r:1});
cartas_array.push({c:"1", r:1});
cartas_array.push({c:"1+1", r:2});
cartas_array.push({c:"2", r:2});
cartas_array.push({c:"10-7", r:3});
cartas_array.push({c:"3", r:3});
cartas_array.push({c:"4+3", r:7});
cartas_array.push({c:"7", r:7});
cartas_array.push({c:"16/2", r:8});
cartas_array.push({c:"8", r:8});
$('.cartas').each(function(i){
num=cartas_array.length;
n=Math.floor(Math.random()*num);
$(this).html("<p>"+cartas_array[n].c+"</p>");
});
};
</script>
</head>
<body>
<div id="tablero">
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<br>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<br>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<br>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<div class="cartas" data-num=""></div>
<br>
<div id="marcador">
<div id="tiempo">00:00:00</div>
<div id="score">Score: 0</div>
</div>
</div>
</body>
</html>
发布于 2016-05-19 08:05:20
将"each“循环放在$( document ).ready()中,如下所示
$( document ).ready(function() {
$('.cartas').each(function(i){
num=cartas_array.length;
n=Math.floor(Math.random()*num);
$(this).html("<p>"+cartas_array[n].c+"</p>");
});
});或者将脚本放在body标签的末尾。它应该是可行的
https://stackoverflow.com/questions/37311889
复制相似问题