在foreach jquery中使用$.data不起作用
目前我正在尝试验证页面上的多个表单。在foreach中,在$datacurrentFormId下面,验证程序;永远不会被击中。声明未在任何执行路径中分配给它的值。有一个父函数,它实际上是有效的在foreach jquery中使用$.data不起作用,jquery,Jquery,目前我正在尝试验证页面上的多个表单。在foreach中,在$datacurrentFormId下面,验证程序;永远不会被击中。声明未在任何执行路径中分配给它的值。有一个父函数,它实际上是有效的 validate: function (options) { // if nothing is selected, return nothing; can't chain anyway if (!this.length) { if (options && o
validate: function (options) {
// if nothing is selected, return nothing; can't chain anyway
if (!this.length) {
if (options && options.debug && window.console) {
console.warn("Nothing selected, can't validate, returning nothing.");
}
return;
}
// works ok in this context var validator = $.data(this[0], "validator");
$("form").each(function (index, value) {
var currentFormId = 'form#' + $(this).attr('id');
// check if a validator for this form was already created
var validator = $.data(currentFormId, "validator");
}
}
$.data始终具有以下签名:$.dataelement、key、value,其中元素必须是要获取/设置数据的DOM元素。您已将第一个参数设置为currentFormId,它是一个字符串 因此,当您要将数据设置到表单中时。每个: 如果要检索名为validator的数据:
var valid = $.data(this, "validator"); // --> 'form#...'
如果要获取包含分配给此元素的所有数据的对象,请执行以下操作:
var alldata = $.data(this); // --> Object{validator="form#...", ......}
为什么不直接使用var validator=$this.datavalidator,因为这是each中的表单?嗨,ide中仍然存在一个问题,即分配的值在任何执行pathWait中都没有使用。你只是想清除IDE警告?它是否警告您实际上没有使用此处定义的变量验证器?
var alldata = $.data(this); // --> Object{validator="form#...", ......}