我正在尝试将特定类的所有文本放入一个数组中。
以下在理论上有效,但它将它们放入对象中,而不是数组中,并且 .map 显然在大多数版本的 IE 中广泛不受支持:(
var valuesArr = $('.'+sort_column);
var valuesArr = valuesArr.map(function(){return $(this).text().trim();});
有什么方法可以将所有值放入我刚刚丢失的简单数组中?
谢谢!
我正在尝试将特定类的所有文本放入一个数组中。
以下在理论上有效,但它将它们放入对象中,而不是数组中,并且 .map 显然在大多数版本的 IE 中广泛不受支持:(
var valuesArr = $('.'+sort_column);
var valuesArr = valuesArr.map(function(){return $(this).text().trim();});
有什么方法可以将所有值放入我刚刚丢失的简单数组中?
谢谢!
简单迭代:
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/
使用$.map 之类的
var valuesArr = $('.'+sort_column);
var valuesArr = $.map(valuesArr,function(){
return $(this).text().trim();
}).get();
$.map
返回一个 jQuery 对象。
jQuery 对象类似于数组,但它们不是数组!在 .map() 调用结束时调用 .get() 的原因是将 jQuery 对象转换为真正的数组。该数组的元素是回调返回的值。
您可以使用$.makeArray()
将 jQuery 对象转换为数组,然后从元素映射文本:
var valuesArr = $.makeArray($('.elements'))
.map(function() {
return $(this).text().trim();
});