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つをクリックすると、この関数が呼び出されます。アクティブな要素にこのバッジがあるかどうかを確認することになっています。含まれている場合は、バッジの整数値をインクリメントします。それ以外の場合は、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 に答える