在jQuery中将变量设置为函数值?

时间:2016-11-10 21:25:48

标签: jquery function

我试图将此变量设置为一个函数,并将变量的值设置为该函数的输出,但我不能指出如何正确获取输出:

var prev = activeSection.prevAll();

var about = prev.each(function(){ 
     $(this).data('about');
})

现在.data func的值是我想要设置about var的值,但是当我记录about var时,我只获取所有元素prev var,而不是我想要的.data('about')

我知道我已经被一些如此微小的东西......建议?

2 个答案:

答案 0 :(得分:1)

您必须映射数据值以获取值数组

var prev = activeSection.prevAll();

var about = prev.map(function(){ 
     return $(this).data('about');
}).get();

答案 1 :(得分:1)

您正在使用的jQuery .each函数只是迭代元素。您没有将它们添加到列表中,因此您的价值不会发生任何变化。

您可以按如下方式修改现有代码,将值添加到数组中:

var prev = activeSection.prevAll();

var about = [];
prev.each(function(){ 
     about.push($(this).data('about'));
});

或者,您可以使用jQuery map作为adeneo注明,或者您可以在非jQuery forEach循环中执行此操作。

var prev = activeSection.prevAll();

var about = [];
prev.forEach(function() {
  var val = $(this).data('about');
  about.push(val);
});