0

我正在尝试将特定类的所有文本放入一个数组中。

以下在理论上有效,但它将它们放入对象中,而不是数组中,并且 .map 显然在大多数版本的 IE 中广泛不受支持:(

var valuesArr = $('.'+sort_column);
var valuesArr =  valuesArr.map(function(){return $(this).text().trim();});

有什么方法可以将所有值放入我刚刚丢失的简单数组中?

谢谢!

4

3 回答 3

1

简单迭代:

var array = [];

$(".elements").each(function() {
    array.push($.trim($(this).text()));
});

console.log(array);

或者使用 jQuerymap方法:

var array = $(".elements").map(function() {
    return $.trim($(this).text());
}).get();

console.log(array);​

演示:http: //jsfiddle.net/f6cmR/

于 2012-06-01T21:01:37.780 回答
0

使用$.map 之类的

var valuesArr = $('.'+sort_column);
var valuesArr =  $.map(valuesArr,function(){
                      return $(this).text().trim();
                     }).get();

$.map返回一个 jQuery 对象。

jQuery 对象类似于数组,但它们不是数组!在 .map() 调用结束时调用 .get() 的原因是将 jQuery 对象转换为真正的数组。该数组的元素是回调返回的值。

于 2012-06-01T21:02:40.547 回答
0

您可以使用$.makeArray()将 jQuery 对象转换为数组,然后从元素映射文本:

var valuesArr = $.makeArray($('.elements'))
    .map(function() {
        return $(this).text().trim();
    });
于 2012-06-01T21:14:11.313 回答