如何检查jQuery .data()函数中是否存在值

时间:2013-01-19 05:48:21

标签: jquery

  

可能重复:
  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")}

但它什么也没做。

请参阅并建议任何可行的方法。

感谢。

2 个答案:

答案 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版本

DEMO

$(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的解决方案相同的方法

DEMO

$(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()  
  });
});