1

html 要素に色を適用する必要がありますが、コンテンツの特定の部分にのみ適用されます。

現在、matchedOn というクラスでそれぞれをマークし、次の Jquery を使用して必要な色付けを実行します。

$('.matchedOn:contains("' + matchedItem + '")').css({ "color": "#008000", "background-color": "#FFFF00" });

MatchedItem は、Ajax フィードからの変数です。わかりました、これは完全なエントリに対して機能するので、表示されたテキストが で、<dd><dd>Hello there this is a test string</dd>の例で MatchedItem がである場合'this is'、どうすれば色属性を だけに割り当てることができます'this is'か?

4

2 に答える 2

3

スタイル処理はすべてタグで囲む必要があるため、このテキストを aで囲み、スタイルシートに宣言<span class='highlight'>を追加します。highlight

jQuery で要素を見つけたら.html()、要素内のテキストを置き換えて、スパンをテキストにラップする必要があります。

var match = $('.matchedOn:contains("' + matchedItem + '")')
$(match).html($(match).html().replace(matchedItem,"<span class='highlight'>"+matchedItem+"</span>")); 
于 2013-10-22T15:04:21.033 に答える
1

このための JQuery プラグインがここにあります: JavaScript テキストの強調表示 jQuery プラグイン

テキストをラップする独自の方法を作成することもできますが、これはより高速なソリューションになると確信しています。

于 2013-10-22T15:08:57.777 に答える