我正在使用jQuery <a>
函数检索.each()
元素中存在的文本值,并将其存储在Array中。我找到了以下两种方法,但不确定我应该选择哪种方法。
var textArr = [];
// Method 1
var textLinks = $("a").each(function(){
textArr.push($.trim($(this).text()));
});
//Method 2
$("a").each(function(){
textArr.push($.trim($(this).text()));
});
有什么优点和优点;方法1和方法2的缺点?
答案 0 :(得分:1)
我使用map()
,因为它就是为了这个目的(不需要临时数组)
var textLinks = $("a").map(function(){
return $.trim($(this).text());
});
编辑:如果我正在寻找最快的解决方案,我首先要放弃jQuery;)
var textLinks = (Array.prototype.slice.call(document.links)).map(function(a){ return a.textContent || a.innerText })
或者,如果您担心没有Array.map
的浏览器使用普通的旧循环。看起来像一团糟,但很快。
var textLinks = (function(links, out){
var i = links.length, a;
while(a = links[--i]){ out[i] = a.textContent || a.innerText }
return out;
}(document.links,[]))