div中的文本到数组中进行排序

时间:2012-06-01 20:59:55

标签: javascript jquery

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

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

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

有没有办法让所有的值都变成一个简单而简单的数组,我只是缺少它?

谢谢!

3 个答案:

答案 0 :(得分:1)

简单迭代:

var array = [];

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

console.log(array);

或者使用jQuery map方法:

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

console.log(array);​

DEMO: http://jsfiddle.net/f6cmR/

答案 1 :(得分:0)

使用$.map之类的

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

$.map返回一个jQuery对象。

  

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

答案 2 :(得分:0)

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

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