如果 else 语句在 JavaScript 中不起作用

if else statement not working in javascript

本文关键字:不起作用 JavaScript else 语句 如果      更新时间:2023-09-26

我对if (stat2 == stat)语句有问题。不触发删除类尽管在控制台中我可以看到 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);
    }     
});

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

以下是当前方案的摘要:

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

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

将 stat2 更改为 newstat 后,我不得不为它分配新值

更正了有问题的代码