要获取<td>
以“ELEC ...”开头的所有元素文本,我正在做 -
$('td.id').each(function(){
if ($(this).text().indexOf('ELEC') == 0) {}
});
有没有更简单的方法来做到这一点,比如$('td.id:contains("ELEC*")')
?
要获取<td>
以“ELEC ...”开头的所有元素文本,我正在做 -
$('td.id').each(function(){
if ($(this).text().indexOf('ELEC') == 0) {}
});
有没有更简单的方法来做到这一点,比如$('td.id:contains("ELEC*")')
?
要仅获取以 ELEC 开头的元素,请使用该.filter
方法。
$("td.id").filter(function(){
return /^ELEC/.test($(this).text());
});
或者稍微高效一点
var $collection = $("td.id");
$collection.filter(function(i){
return /^ELEC/.test($collection.eq(i).text());
});
似乎如果我们结合几个不同提案中最好的,我们会得到更快的结果,因为这里并不真正需要正则表达式:
$("td.id").filter(function() {
return ($(this).text().substr(0, 4) == "Elec");
}).whateverMethodYouWant();
或者更快一点,使用更少的 jQuery:
$("td.id").filter(function() {
return ((this.textContent || this.innerText).substr(0, 4) == "Elec");
}).whateverMethodYouWant();