0

「ELEC ...」で始まるすべての<td>要素テキストを取得するには、私はやっています-

$('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 に答える