jquery每个选择器都不起作用

jquery each selector doesnt work

本文关键字:不起作用 选择器 jquery      更新时间:2023-09-26

我创建了一个计数器,每个计数器都计算不同的数字,但是当我选择类中的所有元素时,它不起作用......

$(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);
});

http://jsfiddle.net/DTyY7/

你应该

使用

$(this).html(theNum);

而不是

this.html(theNum);

因为html()是一个jQuery函数,而this(在.each()内部(是一个domElement,所以你必须把它包装成一个jQuery对象。

在这里小提琴:http://jsfiddle.net/nicolapeluchetti/DTyY7/2/

each()回调体中的this应更改为$(this)

$(".test").each(function(){
    var theNum = parseInt($(this).html())+1 || 0;
    $(this).html(theNum);
});

请参阅此演示。

它将.test的第一个实例应用于所有这些实例。您需要遍历所有元素并单独应用+1

$('.test').each(function(){
           $(this).html(parseInt($(this).html())+1)
        });

你需要用$(this(代替这个。我已经更新了代码 http://jsfiddle.net/DTyY7/6/.希望对你有帮助

$(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);

}(;

这就是您可以解决它的方法。因为你在另一个范围内,所以这不起作用。

$(document).ready(function() {
    function change() {
        $(".test").each(function(i,domeElement) {
            var theNum = parseInt($(this).html())+1;
            $(this).html(theNum);
        });
    }
    setInterval(change,1000);
});