1

このクエリを 1 つに短縮することはできますか?

$('p:contains(Tel:)').html(function() {
    return $(this).html().replace('Tel:', '<strong>Tel:</strong>');
});
$('p:contains(Fax:)').html(function() {
    return $(this).html().replace('Fax:', '<strong>Fax:</strong>');
});

私のコードは Tel: と Fax: を探し、それらを<strong>タグでラップします

4

1 に答える 1

5

それらを次のようにマージできます:

$('p:contains(Tel:), p:contains(Fax:)').html(function(_, html) {
    return html.replace(/(Tel\:|Fax\:)/g, '<strong>$1</strong>');
});

しかし実際には、これは少し冗長です。自分で検索を行う前に、jQuery に最初の検索を行うように依頼します。

私は個人的にこれを好みます:

$('p').each(function() {
    var html = $(this).html();
    var changed = html.replace(/(Tel\:|Fax\:)/g, '<strong>$1</strong>');
    if (changed!=html) $(this).html(changed);
});

デモンストレーション( 「Run with JS」をクリック)

于 2013-04-04T07:29:47.017 に答える