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

3 回答 3

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>');
    }
}
于 2011-06-08T05:01:28.603 回答
0

尝试

Bcount = parseInt(Bnumber.text()) + 1;
于 2011-06-08T04:49:29.187 回答
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. 我这parseInt辈子都没用过。Number似乎做同样的事情,而且看起来更好。
于 2011-06-08T05:30:02.280 回答