用于将jquery结果集信息存储在数组中的JavaScript

时间:2013-06-07 00:01:32

标签: javascript jquery

我正在工作的项目在页面上有许多相同类型的元素。这种元素包含一些我需要存储在数组中的文本。我可以使用JQuery轻松选择所有这些元素,并让JQuery返回一组元素结果。但是,我很难理解如何遍历结果集中的所有元素并将每个元素的文本存储在数组中。

我在考虑可能会以某种方式使用类似foreach的东西?

我感谢你在这方面的任何帮助。

非常感谢提前!

HTML

<div class="option">apples</div>
<div class="option">oranges</div>
<div class="option">peaches</div>
<div class="option">grapes</div>

的JavaScript

var i = 0;
foreach($('.option').text() as x){
    someArray[i] = x;
    i++;
}

期望输出

alert(someArray[0]); // apples
alert(someArray[1]); // oranges
alert(someArray[2]); // peaches
alert(someArray[3]); // grapes

2 个答案:

答案 0 :(得分:4)

您可以使用$.each来迭代元素。

var arr = [];
$('.option').each(function() {
    arr.push( $(this).text() );
});

console.log(arr.join());

<强> Check Fiddle

您还可以使用.map方法

var arr = $('.option').map(function () {
    return this.innerHTML
}).get().join();

console.log(arr);

答案 1 :(得分:0)

您可以使用for

var options = $('.option'),
newarray = [];

for (var i = 0, k = options.length; i < k; ++i){
    newarray[i] = options.eq(i).text(); 
}
console.log(newarray);

可能很高兴知道你可以使用for,因为它与你的第一个想法类似,当你不包括jQuery时你可能需要它(当然,我的例子中的其他jquery方法在这种情况下不起作用,但是你明白了。)

http://jsfiddle.net/p7JWg/