【问题标题】:javascript increment index in function函数中的javascript增量索引
【发布时间】:2010-05-03 18:56:27
【问题描述】:

我只是想弄清楚如何在函数内创建索引,以便跟踪其生成的项目,但我不确定如何执行此操作,似乎我应该知道这一点..

addLocation(options,location)

   funciton addLocation(options,location){
       $('#list').append('<li class="location"><div>'+location.label+'</div>'+
        '<input type="hidden" name="location['+x+'][lat]" value="'+location.lat+'" />'+
        '<input type="hidden" name="location['+x+'][lon]" value="'+location.lon+'" />'+
        '<input type="hidden" name="location['+x+'][loc]" value="'+location.loc+'" />'+
        '<input type="hidden" name="location['+x+'][label]" value="'+location.label+'" />'+
    '</li>');
   }

现在通常你有一个 forloop 来帮助你跟踪事情但是在这个实例中我没有在循环中附加项目并且我一直收到一个错误说 x in undefined

感谢您提供的任何帮助

谢谢 迈克

【问题讨论】:

  • 在这个例子中 x 应该是什么值?
  • @Zack 值应该是一个整数 @vicatcu 我还没有定义 x 因为我不知道如何不总是使 x 0
  • @mcgrailm,你的意思是每次调用函数时,x都要递增​​?
  • @mcgrailm,现在已经很清楚了,我发布了一个答案...
  • @CMS 不是真的我现在不知道如何调用该函数

标签: javascript jquery indexing


【解决方案1】:

既然你想要的是每次调用函数时,x 应该递增,你可以将x 存储在一个闭包中,例如:

var addLocation = (function (){
  var x = 0; // store x
  return function (options,location) {
    x++; // increment x
    $('#list').append('<li class="location"><div>'+location.label+'</div>'+
    '<input type="hidden" name="location['+x+'][lat]" value="'+location.lat+'" />'+
    '<input type="hidden" name="location['+x+'][lon]" value="'+location.lon+'" />'+
    '<input type="hidden" name="location['+x+'][loc]" value="'+location.loc+'" />'+
    '<input type="hidden" name="location['+x+'][label]" value="'+location.label+'" />'+
    '</li>');
  };
})();

【讨论】:

  • 那么我通过变量调用函数?参数将如何使其进入函数对不起从未见过这样做
  • 只需致电addLocation(options, location)。没有参数的匿名函数用于闭包,带有两个参数的内部函数被分配给addLocation
【解决方案2】:

声明 x 因为在上面的代码中它没有被定义。

var x = 0;

【讨论】:

  • 好吧,您必须将其定义为我刚刚输入 0 的东西,因为我不知道您要得出什么值。您的索引基于什么,看起来zincorp 对索引基于什么有正确的想法。
【解决方案3】:
var x = $("#list>li").length + 1;

【讨论】:

  • 如果项目被删除,只要您删除 &lt;li&gt;'s,这仍然应该考虑到这一点
  • 好吧,假设我有 4 li 的 x 应该达到 3 然后我添加第五个 x 去 4 我删除 li3 并且我的 x 保持在 4
猜你喜欢
  • 2015-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-14
  • 1970-01-01
  • 2011-08-23
相关资源
最近更新 更多