要获取以“ELEC ...”开头的所有<td>
元素文本,我正在做 -
$('td.id').each(function(){
if ($(this).text().indexOf('ELEC') == 0) {}
});
是否有更简单的方法可以执行此操作,例如$('td.id:contains("ELEC*")')
?
答案 0 :(得分:5)
要仅获取以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());
});
答案 1 :(得分:4)
看起来这就是你如何做到的(我删除了通配符星号,因为它不需要。):
$('td.id:contains("ELEC")')
答案 2 :(得分:0)
似乎如果我们将几个不同提案中的最佳提案结合起来,我们会得到更快的东西,因为这里并没有真正需要正则表达式:
$("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();