可能重复:
How to find index of object in a JavaScript array with jQuery
如果已存在于.data()函数中,我需要找到输入的值。
我正在尝试这种方式。
的jQuery
var array = $("form[name=update]").data("values", {"v1": "value1", "v2": "value2", "v3": "value3", "v4": "value4", "v5": "value5"});
if ($.inArray("value1", array) > -1){alert("duplicate value")}
但它什么也没做。
请参阅并建议任何可行的方法。
感谢。
答案 0 :(得分:1)
$("form[name=update]").data("values", {/* values here*/});
// then later
var valueToLookFor = 'value1',
formData = $("form[name=update]").data().values;
for (var i in formData) {
if (formData[i] === valueToLookFor) {
// you found it!
}
}
答案 1 :(得分:1)
这里
grep
(不做对象)对我也不起作用。
这是$ .each版本
$(function() {
$("form[name=update]").data("values", {"v1": "value11", "v2": "value2", "v3": "value3", "v4": "value4", "v5": "value5"});
$(".but").on("click",function(e) {
var fData = $("form[name=update]").data("values");
var val = $(this).val();
console.log(fData);
$.each(fData, function(n,i) {
console.log("!!!",n,i)
if (i===val) {
alert("duplicate value");
return false;
}
})
e.preventDefault()
});
});
现在我看一下,与danronmoon的解决方案相同的方法
$(function() {
$("form[name=update]").data("values", {"v1": "value11", "v2": "value2", "v3": "value3", "v4": "value4", "v5": "value5"});
$(".but").on("click",function(e) {
var fData = $("form[name=update]").data("values");
var val = $(this).val();
console.log(fData);
for (var o in fData) {
console.log("!!!",o,fData[o])
if (fData[o]===val) {
alert("duplicate value");
break;
}
}
e.preventDefault()
});
});