2011-06-08 66 views
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>'); 
    } 
} 

回答

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

尝试

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

不行,试了一下。 – 2011-06-08 04:54:15

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