Javascript 当值可能不再存在时检测更改的最佳方法?

Javascript 当值可能不再存在时检测更改的最佳方法?,javascript,jquery,jquery-ui,comparison,concatenation,Javascript,Jquery,Jquery Ui,Comparison,Concatenation,我一直在尝试检测网页上多个输入的变化。 为此,我使用了如下查询: $(.InputClass).data("InitialValues",$(.InputClass).serialize()) (我不在我的代码前面,但它应该是这样的) 后来,我将.data中的值与新值进行了比较,结果非常好,但有一件事是GridGiew 在该GridView中,用户可以动态添加或删除行(添加或删除数据)。如果我将初始值保存在.data中,它将与行一起销毁,并且两者都将未定义(初始值和新值)。我需要检查的输入是隐

我一直在尝试检测网页上多个输入的变化。 为此,我使用了如下查询:

$(.InputClass).data("InitialValues",$(.InputClass).serialize())
(我不在我的代码前面,但它应该是这样的)

后来,我将.data中的值与新值进行了比较,结果非常好,但有一件事是GridGiew

在该GridView中,用户可以动态添加或删除行(添加或删除数据)。如果我将初始值保存在.data中,它将与行一起销毁,并且两者都将未定义(初始值和新值)。我需要检查的输入是隐藏的,并且可以使用
$(.myNewClass).val()
访问唯一值(因为我试图为这个特定的隐藏输入使用不同的类)

我想知道什么是最好的解决办法

我尝试使用以下内容连接myNewClass中的所有val()

var initialValues = $(.myNewClass).map(Function(x){ 
    return x.val()
})
(再说一次,我不在我的电脑前,我对javascript和jquery是新手)。 它不起作用。Intellisense无法看到.map(它崩溃了)

如果没有更好的方法,您能帮助我记录val()值的串联方式吗

如果有更好的办法,你能给我指一下正确的方向吗

多谢各位

At

var initialValues = $(.myNewClass).map(Function(x){ 
    return x.val()
})
.myNewClass
应该是一个
字符串,在引号
$(“.myNewClass”)

F
at
.map()
回调应该是小写的
F
,以防止调用本机
函数

x
的第一个参数处。map(x)
将是元素或对象集合中元素或对象的
索引,而不是元素;尝试调整到
.map()
将函数参数回调到
.map(函数(索引,元素))
以对应于它们在循环中的值

中的
x.val()
将返回错误,因为
x
将是
DOM
元素
,而不是jQuery对象
$(x)
;尝试使用
x.value
el.value
检索循环中当前元素的值

尝试打开
控制台
,在下面的stacksnippets中单击“运行代码段”两次。虽然
错误
消息在
控制台
显示
的内容,但在stacksnippets处似乎不会调用
警报


//创建'items'对象,
//包含'initialValues','currentValues'属性,
//最初设置为“未定义”;设置为“数组”
//在'load','unload'事件中
可变项目={
“初始值”:未定义,
“当前值”:未定义
};
$(窗口)
.在({
“加载”:函数(){
//set`items.initialValues`数组
items.initialValues=$(“.myNewClass”).map(函数(索引,元素){
返回元素值
}).toArray();
控制台日志(“加载”,项目);
},
“卸载”:函数(){
//set`items.currentValues`数组
items.currentValues=$(“.myNewClass”).map(函数(索引,元素){
返回元素值
}).toArray();
console.log(“卸载”,项);
警报(JSON.stringify(items,null,4));
}
});
$(函数(){
setTimeout(函数(){
//做事
//删除第一行“.myNewClass`元素”
$(“.myNewClass”).first().remove();
//更改“.myNewClass”集合中索引3处的元素
$(“.myNewClass”).eq(3).val(123);
}, 1500);
});


.myNewClass
值或
.myNewClass
值数组的预期结果串联?一个值数组,或所有值的串联,或所有值的序列化,用于比较“之前”状态和“之后”状态并检测更改(并消除错误的更改,例如,如果有人添加了一行,然后将其删除,则不应将其视为更改,因为实际上没有任何更改)。“我需要检查的输入是隐藏的”值是如何更改的?我想它不会影响值,但由于我不熟悉javascript,我尝试包含我拥有的几乎所有信息,我不确定它是否会影响选择器的可访问性。我现在想不会。p不确定是否正确解释需求?返回一个包含所有现有
.myClass
元素值?“前”状态加上“后”状态?隐藏值是否更改?可以描述“前”状态值、“后”状态值的示例?