JQuery将值传递给.Each()回调

时间:2016-07-07 06:27:12

标签: javascript jquery

这是一个非常简单的问题(很简单到我不确定如何使其工作)这个小问题。 我有一个对象,其中包含我需要在每个语句中使用的数据数组,令我惊讶的是......我不能直接引用它。我已经读过指定

var something = this;

在if之前允许它被调用,这是不好的。

  

当前代码:

var exsistingshifts = response.data.ExsistingEvents;
var eventdata = this;
$(".shiftdiv").each(function (index) {
   var currdiv = $(this).children();
   var info = eventdata.exsistingshifts;
})

预期结果信息=我的美味数据数组

当前结果info = undefined

对于想要Context的人来说,shiftdiv类div是由查询动态构建的,并且在其ID中有一个数据值,用于将它们链接到某组事件。该数组包含所有事件及其数据键,因此对于每个移位div,我需要捕获足够容易的ID,将其与数组进行比较,然后从该数组中取出我需要的值来混淆该特定的div。

对于$(this)的页面上下文,这是在onclick函数内部调用的。 onclick函数设置response.data.ExsistingEvents

1 个答案:

答案 0 :(得分:0)

如果我没有错,你在ajax Success函数中使用这段代码(我可以看到响应对象。)

现在,如果您这样做,则将this对象分配给eventdata会出错。

var eventdata = this将在eventdata中存储$ .ajax对象, 和this对象(表示您的ajax对象)不包含键exsistingshifts的任何值,因此eventdata.exsistingshifts未定义。

将您的代码更改为以下应该正常工作

$(".shiftdiv").each(function (index) {
  var currdiv = $(this).children();
  var info = response.data.ExsistingEvents[index].exsistingshifts;
});