if else语句不能在javascript中工作

时间:2013-09-19 09:16:57

标签: javascript jquery

我对if (stat2 == stat)声明有疑问。不会触发remove类 尽管在控制台中我可以看到stat2和stat具有相同的值。

解决了,我必须在更改后为stat2分配新值

$('.minus').on('click', function(e){
    var ap = $('.add-points').data('ap');
    var stat = $(this).closest('.stat').find('.number-field').data('stat');
    var ap2 = $('.add-points').data('ap2');
    var stat2 = $(this).closest('.stat').find('.number-field').data('stat2');
    var newamount = ap2 + 1;
    var newstat = stat2 - 1;
    if (ap2 == ap || stat2 == stat ) {
        alert("nie mozesz wiecej odjac");
    } else {
        e.preventDefault();
        $(this).closest('.stat').find('.number-field').val(newstat);
        $(this).closest('.stat').find('.number-field').data('stat2', newstat);
        var stat2 = $(this).closest('.stat').find('.number-field').data('stat2');
        if (stat2 == stat) {
            $(this).closest('.stat').find('.number-field').removeClass('updated');
        } else {
        }
        $('.unassigned').html(newamount);
        $('.add-points').data('ap2', newamount);

    }     
});

3 个答案:

答案 0 :(得分:0)

你确定你有相同的.number-field元素吗? 在你的函数中,我们可以看到你获得的.number-field是你的事件目标(.minus)的壁橱。
但是当你测试时,我们不知道你得到了哪个.number-field元素。

答案 1 :(得分:0)

以下是当前情景的摘要:

if stat == stat2
    alert
else
    if stat == stat2
        remove class

显然,stat必须与stat2不同才能到达else块,但在这种情况下,该类不会被删除。

答案 2 :(得分:0)

我必须在将其更改为newstat后为stat2分配新值

更正了有问题的代码