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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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,以下是我的一个对象中的函数: updatePorts: function(nodeKey, portOptions, portArrays) { var showing_ports = false; $('#ports li').removeClass('active').hide(); $('#ports .tab-pane').removeClass('active in'); $.each(portOptions, function(side, options) {

以下是我的一个对象中的函数:

updatePorts: function(nodeKey, portOptions, portArrays) {
  var showing_ports = false;
  $('#ports li').removeClass('active').hide();
  $('#ports .tab-pane').removeClass('active in');
  $.each(portOptions, function(side, options) {
    if (options.editable) {
      $('#ports [href="#'+side+'"]').closest('li').show();
      if (!showing_ports) {
        $('#ports [href="#'+side+'"]').closest('li').addClass('active');
        $('#ports #'+side).addClass('active in');
      }

      $.each(portArrays[side], function(i,port) {
        //do stuff
      }

      showing_ports = true;
    }
  })
}
我的问题是在
$之外。每个
循环I都可以访问作为参数传递到函数中的
portarray
变量。但是,我无法访问
$中的相同变量。每个
循环

我做错什么了吗?如何访问循环中的变量

更新:在实际访问Portarray的位置添加了代码

Portarray
是在您使用它的位置定义的,但您使用了错误的索引。
side
变量是
portOptions
的索引,而不是
portarray

它应该有什么索引?如果这两个数组以相同的索引值并行运行,这通常是一个坏主意-最好使用单个对象数组-至少需要在代码中记录


顺便问一下,JS控制台中的确切错误消息是什么?如果我的猜测不正确,错误消息将提供线索

我在主题中描述了这个问题,但是询问者似乎在代码的其他地方遇到了问题。我的代码类似于下面的代码,我无法从
访问我想要的内容。第一个日志可以工作,但each循环中的日志未定义。我现在意识到,在使用jquery时,
这个
会被重新分配-

我已改为使用
for。。在
中迭代我的this.data对象并使其工作。希望这能帮助别人

List.prototype.updateList = function(search) {
    console.log(this.id);
    for(var key in this.data){
        console.log(this.id); //hooray
    }
}

您的代码没有显示错误案例。您没有在每个循环中访问portOptions,那么我们如何判断您的代码出了什么问题?没有理由不能在每个循环中访问PortArray我添加了一些访问PortArray的代码。我将看看是否可以在JSFIDDLE中重新创建我的问题。您必须启动调试器,并查看第一个
块中的
portArrays
值。我做到了。当它位于每个块的第一个内部时,它是未定义的。在第一个块之前,它是一个对象。在JSFIDLE中重写代码之后,一切似乎都正常工作。不知道发生了什么事。
List.prototype.updateList = function(search) {
    console.log(this.id);
    for(var key in this.data){
        console.log(this.id); //hooray
    }
}