如何使用jQuery返回每个函数的变量
这是我的简化脚本:如何使用jQuery返回每个函数的变量,jquery,function,variables,return,each,Jquery,Function,Variables,Return,Each,这是我的简化脚本: var $error = false; //Check for errors $('.required').each(function() { var $error = true; }); alert($error); 如何在警报函数中使上述代码返回true? 每个函数在我的页面上执行3次,以检查是否有空字段。 但在上面的警告中,包含false而不是true。 是否有方法在each函数外部解析变量$error,以检查每个循环后是否有空字段?您正在.each回调中隐藏
var $error = false;
//Check for errors
$('.required').each(function()
{
var $error = true;
});
alert($error);
如何在警报函数中使上述代码返回true?
每个函数在我的页面上执行3次,以检查是否有空字段。
但在上面的警告中,包含false而不是true。
是否有方法在each函数外部解析变量$error,以检查每个循环后是否有空字段?您正在.each回调中隐藏外部$error变量。去掉var,然后引用外部变量:
var $error = false;
$('.required').each(function() {
$error = true; // Now this refers to the `$error` declared above
});
但是,如果只是使用.each调用检查是否有任何元素具有.required类,则可以只检查.length:
您正在.each回调中隐藏外部$error变量。去掉var,然后引用外部变量:
var $error = false;
$('.required').each(function() {
$error = true; // Now this refers to the `$error` declared above
});
但是,如果只是使用.each调用检查是否有任何元素具有.required类,则可以只检查.length:
只需删除内部var关键字
或者使用window作为名称空间,如下所示
window.error = false;
//Check for errors
$('.required').each(function()
{
window.error = true; // No Var Here
});
alert(window.error);
请注意,如果返回false时出现错误,最好中断循环-这只是一个性能建议 只需删除内部var关键字即可
或者使用window作为名称空间,如下所示
window.error = false;
//Check for errors
$('.required').each(function()
{
window.error = true; // No Var Here
});
alert(window.error);
请注意,如果返回false时出现错误,最好中断循环-这只是一个性能建议 您在本地和全局声明了$erro
您在本地和全局声明了$erro
将var放到.each回调函数中,否则将在不同的范围中定义新变量
var $error = false;
//Check for errors
$('.required').each(function() //<-- start of new scope block
{
var $error = true; //<--defines new variable -- different from one above
});
alert($error);
将var放到.each回调函数中,否则将在不同的范围中定义新变量
var $error = false;
//Check for errors
$('.required').each(function() //<-- start of new scope block
{
var $error = true; //<--defines new variable -- different from one above
});
alert($error);
如果要检查文本是否为空,可以使用:
var $error = false;
$('input.anyclass').each(function()
{
if($(this).val() == "")
{
$error = true;
}
});
alert($error);
如果要检查文本是否为空,可以使用:
var $error = false;
$('input.anyclass').each(function()
{
if($(this).val() == "")
{
$error = true;
}
});
alert($error);
如果您收到false警报,则您没有与.required选择器匹配的元素。首先尝试修复此问题:相关和。感谢文章链接!如果您收到false警报,则您没有与.required选择器匹配的元素。首先尝试修复此问题:相关和。感谢文章链接!更多信息:谢谢大家!今天又学到了一些小但很有用的东西!另外,你的第二条路要容易得多。我会用的。我现在用:$this.val==代替。更多信息:谢谢大家!今天又学到了一些小但很有用的东西!另外,你的第二条路要容易得多。我会用的。我现在使用:$this.val==代替。