使用:contains()
:
$('.Status:contains("Pending")').text('Started');
または、次のようにしfilter()
ます。
$('.Status').filter(function() {
return $(this).text() == 'Pending';
}).text('Started');
:contains
セレクターの方が速いと思います。JSPerfで自分で確認できます
編集
私は自分でテストを行いました。少なくとも Chromeよりfilter()
も 64% 高速です: http://jsperf.com/contains-vs-filter-rpm:contains
ハードコーディングされた「Started」の代わりに動的テキスト (特定のスパンの属性) が必要な場合はどうすればよいですか??
<span class="Status" data-new-text="Started">Pending</span>
<span class="Status" data-new-text="Started">Completed</span>
<span class="Status" data-new-text="Started">Pending</span>
<span class="Status" data-new-text="Started">Started</span>
$('.Status').filter(function() {
return $(this).text() == 'Pending';
}).each(function() {
$(this).text($(this).data('new-text'));
};