增加徽章计数

发布于 2024-11-14 02:52:52 字数 1011 浏览 7 评论 0原文

jQuery.fn.add = function() {

    var Bnumber = $(this).find(".B_Add");

    if (Bnumber) {
        Bcount = parseInt(Bnumber.html()) + 1;
        $(this).find("div.B_Add").remove();
        $(this).parent().find(".B_List").append('<div class="Badge B_Add">'+ Bcount +'</div>');

    } else {
        $(this).find(".B_List").append('<div class="Badge B_Add">1</div>');
    }
}

我正在运行一个上下文菜单脚本,当我单击其中一个选项时,它会调用此函数。它应该查看活动元素是否具有此徽章。如果是,则会增加徽章的整数值。否则,它会从 1 开始创建徽章。后者很容易,前者更难。

我认为我混淆了元素类型,并且我不确定如何使用 parseInt...

编辑

弄清楚了。

jQuery.fn.add = function() {
    if ($(this).find(".Badge").hasClass(".B_add")) {
        bCount = parseInt($(this).find(".B_add").text());
        $(this).find(".B_add").remove();
        $(".OPT .B_list").append('<div class="Badge B_add">'+(bCount+1)+'</div>');
    } else {
        $(".OPT .B_list").append('<div class="Badge B_add">0</div>');
    }
}
jQuery.fn.add = function() {

    var Bnumber = $(this).find(".B_Add");

    if (Bnumber) {
        Bcount = parseInt(Bnumber.html()) + 1;
        $(this).find("div.B_Add").remove();
        $(this).parent().find(".B_List").append('<div class="Badge B_Add">'+ Bcount +'</div>');

    } else {
        $(this).find(".B_List").append('<div class="Badge B_Add">1</div>');
    }
}

I have a contextual menu script running, when i click on one of the options, it calls this function. It's supposed to see if the active element has this badge or not. If it does, it increments the integer value of the badge. Otherwise, it creates the badge starting at 1. The latter part is easy, the former harder.

I think i'm mixing up element types, and i'm not sure how to use parseInt...

EDIT

Figured it out.

jQuery.fn.add = function() {
    if ($(this).find(".Badge").hasClass(".B_add")) {
        bCount = parseInt($(this).find(".B_add").text());
        $(this).find(".B_add").remove();
        $(".OPT .B_list").append('<div class="Badge B_add">'+(bCount+1)+'</div>');
    } else {
        $(".OPT .B_list").append('<div class="Badge B_add">0</div>');
    }
}

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

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

发布评论

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

评论(3

一桥轻雨一伞开 2024-11-21 02:52:52

试试这个。

jQuery.fn.add = function() {

    var Bnumber = $(".B_Add");

    if (Bnumber) {
        var Bcount = parseInt(Bnumber.html()) + 1;
        Bnumber.html(Bcount);
    } else {
        $(this).find(".B_List").append('<div class="Badge B_Add">1</div>');
    }
}

Try this.

jQuery.fn.add = function() {

    var Bnumber = $(".B_Add");

    if (Bnumber) {
        var Bcount = parseInt(Bnumber.html()) + 1;
        Bnumber.html(Bcount);
    } else {
        $(this).find(".B_List").append('<div class="Badge B_Add">1</div>');
    }
}
安稳善良 2024-11-21 02:52:52

尝试

Bcount = parseInt(Bnumber.text()) + 1;

Try

Bcount = parseInt(Bnumber.text()) + 1;
饭团 2024-11-21 02:52:52

这是我的看法:

jQuery.fn.add = function() {
    var badge = $('.B_Add', this);

    if (badge.length) {
        badge.html(Number(badge.html()) + 1);
    } else {
        $('.B_List', this).append('<div class="Badge B_Add">1</div>');
    }
}
  1. 对我来说,使用 $('.B_Add', this) 格式表示其他内容中的内容始终是最干净的语法。
  2. 您必须检查 badge.length 来查看是否找到了某个项目 - 即使 jQuery 选择器没有匹配任何项目,它的计算结果仍然为 true
  3. 无需重新创建B_Add 元素,更改其内容应该完成同样的事情。
  4. 我一生中从未使用过parseIntNumber 似乎做了同样的事情,而且看起来更好。

Here's my take on it:

jQuery.fn.add = function() {
    var badge = $('.B_Add', this);

    if (badge.length) {
        badge.html(Number(badge.html()) + 1);
    } else {
        $('.B_List', this).append('<div class="Badge B_Add">1</div>');
    }
}
  1. Using the format $('.B_Add', this) for something inside of something else has always seemed the cleanest syntax to me.
  2. You have to check for badge.length to see if an item was found - even when a jQuery selector matches no items, it still evaluates to true
  3. There's no need to recreate the B_Add element, changing its content should accomplish the same thing.
  4. I've never used parseInt in my life. Number seems to do the same thing, and it looks nicer.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文