我创建了一个计数器,每个计数器都有不同的数字,但是当我在课堂上选择所有的元素时它不起作用......
$(document).ready(function() {
function change() {
/*
$(".test").each(function(i,domeElement){
var theNum = parseInt(this.html())+1;
this.html(theNum);
});
*/
//this works... the other one doesnt why?!?!
var theNum = parseInt($(".test").html()) + 1;
$(".test").html(theNum);
}
setInterval(change, 1000);
});
答案 0 :(得分:2)
你应该使用
$(this).html(theNum);
而不是
this.html(theNum);
因为html()
是一个jQuery函数而this
(在.each()
内)是一个domElement,所以你必须把它包装成一个jQuery对象
答案 1 :(得分:1)
this
回调正文中的 each()
应更改为$(this)
:
$(".test").each(function(){
var theNum = parseInt($(this).html())+1 || 0;
$(this).html(theNum);
});
请参阅this演示。
答案 2 :(得分:0)
它正在将.test
的第一个实例应用于所有这些实例。您需要循环遍历所有元素并单独应用+1
。
$('.test').each(function(){
$(this).html(parseInt($(this).html())+1)
});
答案 3 :(得分:0)
$(document).ready(function() {
function change() {
$(".test").each(function(i,domeElement) {
var theNum = parseInt($(this).html())+1;
$(this).html(theNum);
});
}
setInterval(change,1000);
});
答案 4 :(得分:0)
你需要使用$(this)代替这个。我已经更新了代码http://jsfiddle.net/DTyY7/6/。希望它有帮助
答案 5 :(得分:0)
$(document).ready(function(){
function change(){
$(".test").each(function(i, domElement){
//var theNum = parseInt(this.html())+1;
var num = parseInt($(".test").html());
num++
$(".test").html(num);
});
//this works... the other one doesnt why?!?!
/* var theNum = parseInt($(".test").html())+1;
$(".test").html(theNum);
*/}
setInterval(change,1000);
});
这是你如何解决它。因为你在另一个范围内这个keword不起作用。