Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jQuery返回每个函数的变量_Jquery_Function_Variables_Return_Each - Fatal编程技术网

如何使用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==代替。