jQuery:从FOR LOOP返回多个动态变量

时间:2016-07-08 14:23:41

标签: javascript jquery variables for-loop

我想用.step类计算所有元素,然后创建一个for循环并返回选择每个相应元素的变量。这是我的代码:

var steps = $('.step').length;
var i = 0;

for (var i = 0; i < steps; i++) {
    return var step + i = $('.step' + i);
}

编辑:为了让自己清楚,而不是这样做:

var step1 = $('.step1.');
var step2 = $('.step2.');
// etc..  

我想使用for循环来获取每个元素.step的类,并将每个元素返回到不同的变量中,如下所示:step1step2等等。我该怎么做?

2 个答案:

答案 0 :(得分:1)

我对你想要的最好的猜测是:

var result = [];
$('.step').each(function(i) {
  result.push( $('.step' + i) );
});
return result;

这将返回[所有.step1元素,所有.step2元素的数组,...]

答案 1 :(得分:0)

如果你想要一个数组中的所有数据,你可以尝试这样的事情:

&#13;
&#13;
var data = $(".step").map(function(s, index) {
  return $(".step" + (s + 1));
});
console.log(data)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class="step step1">1</div>
<div class="step step2">2</div>
<div class="step step3">3</div>
<div class="step step4">4</div>
<div class="step step5">5</div>
<div class="step step6">6</div>
&#13;
&#13;
&#13;

但我建议您将数据存储在对象中。这将更容易访问。

&#13;
&#13;
var obj = {};
$(".step").each(function(i, el) {
  var _i = i + 1;
  obj["step" + _i] = $(".step" + _i);
});

console.log(obj)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class="step step1">1</div>
<div class="step step2">2</div>
<div class="step step3">3</div>
<div class="step step4">4</div>
<div class="step step5">5</div>
<div class="step step6">6</div>
&#13;
&#13;
&#13;