Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.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
Javascript jQuery.each未在函数中运行_Javascript_Jquery - Fatal编程技术网

Javascript jQuery.each未在函数中运行

Javascript jQuery.each未在函数中运行,javascript,jquery,Javascript,Jquery,我正在处理一个项目,其中一些表单元素依赖于另一个表单输入来获得某个值,或者在显示该输入之前可能有多个具有特定值的元素 其思想是,在生成表单时,每个输入的包装div都有一个datadependen属性,该属性包含一个逗号分隔的列表,其中列出了它所依赖的每个字段以及它所期望显示的每个字段的值 我几乎有了前端/JavaScript代码来完成提升,但出于某种原因,我的jQuery.JavaScript函数中的每个()循环都没有运行,即使我已经确认了我试图循环的数组。有内容,b。函数实际上是在预期的时候被

我正在处理一个项目,其中一些表单元素依赖于另一个表单输入来获得某个值,或者在显示该输入之前可能有多个具有特定值的元素

其思想是,在生成表单时,每个输入的包装div都有一个datadependen属性,该属性包含一个逗号分隔的列表,其中列出了它所依赖的每个字段以及它所期望显示的每个字段的值

我几乎有了前端/JavaScript代码来完成提升,但出于某种原因,我的jQuery.JavaScript函数中的每个()循环都没有运行,即使我已经确认了我试图循环的数组。有内容,b。函数实际上是在预期的时候被调用的

首先,我有实际的函数调用(每当依赖项输入发生更改时调用):

然后是函数checkShowField()定义:

function checkShowField(keyed_dependencies, current_values, targeted_element)
{
    var hide_field = null;
    jQuery.each(keyed_dependencies, function(key, value)
    {
        if (value != current_values[key] && hide_field == null)
            hide_field = false;
    });

    if (hide_field == null)
        $(targeted_element).slideDown();
    else
        $(targeted_element).slideUp();
}
另外请注意,函数调用被放置在正确的位置,并且实际上正在被调用。我只是在这里添加了代码,向大家展示函数调用的上下文。函数调用包装在$(document).ready(function(){…})中


如您所见,在函数“checkShowField”中,我有一个jQuery。每个循环都应该在键控依赖项数组中循环,但实际上,循环甚至没有运行过一次。想法?

看起来键控依赖项并不是你想象的那样。尝试在
之前添加
调试器;
语句。每个
行,可能也在函数中。然后se inspector/debugger检查变量中的数据。

您可以检查参数列表中的
键控依赖项是否有属性
length
。如果是这样,jQuery假设有一个数组,实际上可能无法运行循环

如果是这种情况,请尝试使用vanilla JS:

for (var key in keyed_dependencies) {...}

希望这能有所帮助。

你能定义
键控元素依赖项
当前值
目标元素
?正如我所说的,键控元素依赖项确实有内容-我已经仔细检查了这一点。这是一个包含内容的数组。实际上,我认为你可能在这里找到了一些东西。由于某种原因,键控元素的长度keyed_dependencies是0,即使它在数组中只有一个元素。想法?如何定义
keyed_dependencies
?您是实例化
类(因此您只继承了属性)还是使用普通数组对象?它是普通数组对象。keyed_dependencies=[];被实例化,然后使用关联键添加元素,并将其传递给checkShowField()。此外,当我使用常规for循环时,正如您所建议的那样,它可以工作……您能解释一下是什么导致了这种情况吗?感谢您的帮助!这可能是问题所在吗?jQuery假设一个数组(因为像所有数组一样,
keyed\u dependencies
具有属性
length
。但是:您使用的是非数字键。
jQuery。每个
都使用数字键来运行循环,如果您向其传递一个实际数组。因此,循环将失败。不幸的是……它是。我已经这样做了,并且它是一个预期的数组,这就是为什么我无法运行它的原因。)重新定义它。一定是我忽略了什么。这可能是jQuery中两种不同类型的
each()
造成的混淆吗?如果它确实是一个数组,为什么不使用本机
forEach()
for (var key in keyed_dependencies) {...}