<p>first - 2014</p>
<p>a - 2014</p>
<p>a - 2014</p>
<p>a - 2013</p>
<p>a - 2013</p>
$("p").each(function(){
var str = $(this).text();
var patt = /\d+$/;
var res = str.match(patt);
if (res == 2014){
var arr = [];
arr.push($(this));
console.log(arr[0])
}
});
我试图获得2014年的第一段 - 但是确定2014年的所有元素
我做错了什么,我该如何解决这个问题?
答案 0 :(得分:2)
只需使用filter()
,因为这通常更有用。如果您想要第一个,那么只需在结果上调用first()
:
http://jsfiddle.net/TrueBlueAussie/zxqegsuh/3/
var ps = $("p").filter(function(){
var str = $(this).text();
var patt = /\d+$/;
var res = str.match(patt);
return (res == 2014);
});
alert(ps.length);
// if you want the first only
ps.first().css('color', 'red');
减少到:http://jsfiddle.net/TrueBlueAussie/zxqegsuh/4/
var ps = $("p").filter(function(){
return $(this).text().match(/\d+$/) == 2014;
});
注意:您继续声明一个本地数组,将结果推到它上然后扔掉它。这似乎有点不对劲:))