jquery 每个选择器都不起作用

发布于 2024-12-21 11:08:00 字数 579 浏览 1 评论 0原文

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

$(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/

I created a counter that count different numbers each, but when I choose all the elemnts in class it doesnt work...

$(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/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

み零 2024-12-28 11:08:00

你应该使用

$(this).html(theNum);

而不是

this.html(theNum);

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

Fiddle 中: http://jsfiddle.net/nicolapeluchetti/DTyY7/2/

You should use

$(this).html(theNum);

and not

this.html(theNum);

Because html() is a jQuery function and this (inside .each()) is a domElement and so you must wrap it into a jQuery object

Fiddle here: http://jsfiddle.net/nicolapeluchetti/DTyY7/2/

一向肩并 2024-12-28 11:08:00

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

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

请参阅 这个演示。

this in your each() callback body should be changed to $(this):

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

see this demo.

错爱 2024-12-28 11:08:00

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

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

it is applying the first instance of .test to all of them. You need to loop through all of the elements and apply a +1 separately.

$('.test').each(function(){
           $(this).html(parseInt($(this).html())+1)
        });
眼睛会笑 2024-12-28 11:08:00

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

you need to use $(this) instead this .I have updated the code http://jsfiddle.net/DTyY7/6/ .Hope it helps

旧伤慢歌 2024-12-28 11:08:00
$(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, 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);

});

This is how you can fix it. Because you are in another scope the keword this doesn't work.

八巷 2024-12-28 11:08:00
$(document).ready(function() {
    function change() {
        $(".test").each(function(i,domeElement) {
            var theNum = parseInt($(this).html())+1;
            $(this).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);
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文