如何检查变量内容是否已更改

时间:2020-10-24 06:39:27

标签: javascript jquery

如果变量的内容已更改,则执行代码行,否则跳过,我该如何检查

$("#weektime").click(function(e) {
    e.preventDefault();
    var x = $(this).selectedDays();
    $("#weektime1").css("display", "flex");
if(previous value of x != current value of x){
        foo(x[0]);
}
});

2 个答案:

答案 0 :(得分:0)

包括另一个变量以保存实际变量的原始/先前值。检查先前/原始变量的值是否等于实际变量值。

$(document).ready(function(){
 var previous;
 $("#weektime").click(function(e) {
    e.preventDefault();
    var x = $(this).selectedDays();
    $("#weektime1").css("display", "flex");
    if(previous !== x){
        foo(x[0]);
    }
    previous = x;
 });
});

答案 1 :(得分:0)

如果变量的内容更改了

在您的代码中,每次都检索变量x(currentValue)

var x = $(this).selectedDays();

因此,这不是“变量已更改”的情况,因为它在每次点击事件中都是新的,而是它来自的值

$(this).selectedDays();

当您从DOM元素获取x值时,建议您也针对该元素存储“原始”值,这样您的代码可以应用于任意数量的元素,而无需创建每次都有新变量。

$(this).data("oldValue");

更新代码:

$("#weektime").click(function(e) {
    e.preventDefault();

    var oldValue = $(this).data("previous-selected-days") || 0;
    var currentValue = $(this).selectedDays();
   

    if (oldValue != currentValue) {
        foo(currentValue[0]);

        // optionally update the "oldvalue"
        $(this).data("previous-selected-days", currentValue);
    }
});

如果您使用的是“原始”值而不是“先前的值”,请在DOM中进行设置

<input data-previous-selected-days="123">

或在启动时

$(function() { 
    // after initialising the control
    $("#weektime").data("previous-selected-days", $("#weektime").selectedDays());
});