增加徽章数量

时间:2011-06-08 04:45:38

标签: jquery function counter parseint

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>');
    }
}

3 个答案:

答案 0 :(得分:2)

试试这个。

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>');
    }
}

答案 1 :(得分:0)

尝试

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

答案 2 :(得分:0)

这是我的看法:

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似乎做同样的事情,看起来更好。
相关问题