2

我正在工作的项目在页面上有许多相同类型的元素。这种元素包含一些我需要存储在数组中的文本。我可以使用 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
4

2 回答 2

4

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

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

console.log(arr.join());

检查小提琴

你也可以使用.map方法

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

console.log(arr);
于 2013-06-07T00:04:22.100 回答
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/

于 2013-06-07T00:15:12.897 回答