0

要获取<td>以“ELEC ...”开头的所有元素文本,我正在做 -

$('td.id').each(function(){
    if ($(this).text().indexOf('ELEC') == 0) {}
});

有没有更简单的方法来做到这一点,比如$('td.id:contains("ELEC*")')

4

3 回答 3

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());
});
于 2012-04-20T20:18:00.430 回答
4

看起来你就是这样做的(我删除了通配符星号,因为它不需要。):

$('td.id:contains("ELEC")')

http://api.jquery.com/contains-selector/

于 2012-04-20T20:14:52.647 回答
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();
于 2012-04-20T20:34:58.180 回答