回答jQuery.data ()関数に値が存在するかどうかを確認する方法
(私の決定ではなく、フォームオブジェクトに大量のデータ値を追加することの妥当性について反対票を投じないでください)
それぞれを使用してjsfiddleを作成しました
これは
Object {v1: "value11", v2: "value2", v3: "value3", v4: "value4", v5: "value5"} fiddle.jshell.net:25
Uncaught TypeError: Object #<Object> has no method 'each'
注:オブジェクトを$(..)でラップすると、どちらも機能しません
$ .eachを使用して$.eachjsfiddleを使用して解決
$(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);
$fData.each(function(n,i) {
console.log("!!!",n,i)
if (n[i]===val) {
alert("duplicate value");
return false;
}
})
e.preventDefault()
});
});
と
タスクで完全に失敗するgrepを使用するjsfiddle 。
$(function() {
$("form[name=update]").data("values", {"v1": "value11", "v2": "value2", "v3": "value3", "v4": "value4", "v5": "value5"});
$(".but").on("click",function() {
var $fData = $("form[name=update]").data("values");
var val = $(this).val();
var idx = $.grep($fData, function(n,i) {
console.log("n",n); // why no console output for this???
return n[i]===val;
});
console.log(idx);
if (idx!=-1) {
alert("duplicate value")
}
});
});
質問:
each
返されたオブジェクトで実行できないのはなぜですかgrep
私がやっているのはどうですか(以前はgrepを1回だけ使用しました)- 内部からコンソール出力がないのはなぜですか
grep