0

これを for ループにする方法はありますか? このコードを 114 回実行する必要があり、これを簡素化する方法を探しています。クラス名の数字は変数になります。次は.select3などです...

$('.select2').click(function () {
        if ($('.saved_list .thumb2').length == 0 && $('.saved > li').length < totalPic)
            {
                $(this).parent().clone().appendTo('.saved_list ul');
                $('.saved .select2').replaceWith('<div class="remove2">Remove</div>');
                $('.saved a').contents().unwrap(); 
            } else {
                alert ('You can only choose 3 paintings');  
            }
            if ($('.saved_list li').has('.thumb2')) {
                $(".select2 .img-swap").attr("src", "images/check_on.gif");
            } else {
                $(".select2 .img-swap").attr("src", "images/check_off.gif");
        };
    });
4

2 に答える 2

2

これを試して:

var run_select = function(index){
    var selector = '.select'+index;
    $(selector).click(function () {
        if ($('.saved_list .thumb2').length == 0 && $('.saved > li').length < totalPic)
        {
            $(this).parent().clone().appendTo('.saved_list ul');
            $('.saved '+selector).replaceWith('<div class="remove2">Remove</div>');
            $('.saved a').contents().unwrap(); 
        } else {
            alert ('You can only choose 3 paintings');  
        }
        if ($('.saved_list li').has('.thumb2')) {
            $(selector+" .img-swap").attr("src", "images/check_on.gif");
        } else {
            $(selector+" .img-swap").attr("src", "images/check_off.gif");
        };
    });
};
var i, l = 114;
for(i=1;i<=114;i++){
    run_select(i);
}
于 2012-09-18T01:50:49.617 に答える
-1

まず、可能であれば、html を単純化します。一意の識別子には id を使用し、css クラスには同じ名前を使用します。このような:

<div id='select2' class='select'></div>

次に.each()、すべてのアイテムを取得する場合に使用します。

$('.select').each(function() {
    // use $(this) here to refer to the current item
});

しかし、あなたの場合、次のように「クリック」イベントを単純に適用できます。

$('.select').click(function(e) {
       // use $(this) or $(e.target) here to refer to the current item
       // if you need to get the id number you could get it from the id
       // (supposing has id='select2')

       var id = $(this).attr('id').substring(6); // it returns 2
});
于 2012-09-18T02:17:14.093 に答える