JavaScriptを使用して、配列からキーワードを検索し、親divタグ内のすべてのテキストを強調表示する方法

チームB

製品のリストを含むWebページで、配列からキーワードを検索しています。配列内で単語が見つかると、赤い背景で強調表示されます。それはうまくいきます。これで、キーワードが見つかったら、その製品のすべてのテキスト(<div>タグ)を明るい灰色にして、ページをスキャンするときにその特定の製品を簡単に無視できるようにします。これどうやってするの?これがデモです:JSFiddle

HTMLは次のとおりです。

<div>
<p>I bought some apples.</p>
<p>Apples are £2 per kg.</p>
</div>

<hr>

<div>
<p><a href="oranges.html">I bought some oranges.</a></p>
<p>Oranges are £1.50 per kg.</p>
</div>

<hr>

<div>
<p><a href="pears.html">I bought some pears.</a></p>
<p>Pears are £1.80 per kg.</p>
</div>

JavaScriptは次のとおりです。

var regex = /(apples|oranges)/g;

$('body a, body p').each(function() {
    var $this = $(this);
    var text = $this.text();
    if (text.match(regex) && $this.children().length===0) {
        $this.html(
            $this.html().replace(regex, '<span style="background: #fa7373;">$1</span>')
        );
    }
});
iota

各要素のテキストを確認し、正規表現と一致する場合はそのCSSカラープロパティを設定できます。

var regex = /(apples|oranges)/g;

$('body a, body p, body div').each(function() {
    var $this = $(this);
    var text = $this.text();
    if (text.match(regex)) {
        $this.css("color", "grey");
        if($this.children().length===0){
          $this.html(
              $this.html().replace(regex, '<span style="background: #fa7373;">$1</span>')
          );
        }
    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<p>I bought some apples.</p>
<p>Apples are £2 per kg.</p>
</div>

<hr>

<div>
<p><a href="oranges.html">I bought some oranges.</a></p>
<p>Oranges are £1.50 per kg.</p>
</div>

<hr>

<div>
<p><a href="pears.html">I bought some pears.</a></p>
<p>Pears are £1.80 per kg.</p>
</div>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ