我试图创建一个循环遍历某些表行的函数,但我需要使用this.isempty而不是isempty。如何在每个循环中访问它。
代码:
function checkValues(look) {
this.isempty = 1;
this.search = $(look).find("input").each(function(){
if ($.trim($(this).val())!="") {
this.isempty = 0;
}
});
return this.isempty;
}
显然this.isempty = 0;
不起作用。我怎么能这样做?
答案 0 :(得分:2)
在这种情况下,您可以使用闭包变量来引用isempty
function checkValues(look) {
this.isempty = 1;
var self = this;
this.search = $(look).find("input").each(function () {
if ($.trim($(this).val()) != "") {
self.isempty = 0;
}
});
return this.isempty;
}
但这里更合适的方法是使用.filter(),如
function checkValues(look) {
this.isempty = 1;
this.search = $(look).find("input").;
this.isempty = this.search.filter(function () {
return $.trim(this.value) != '';
}).length > 0;
return this.isempty;
}
答案 1 :(得分:0)
您是否因为代码中存在约束而需要引用this
?以下是否有效?
function checkValues(look) {
var isEmpty = 1;
$(look).find("input").each(function(){
if ($.trim($(this).val())!="") {
isEmpty = 0;
return false; // Breaks out of the loop for a little performance boost
}
});
return isEmpty;
}