2017-07-14 4 views
-1

次のテキストを折り返すための動的な方法はありますか?タグの次のテキストを囲む

<p>Enterprise integration platform</p> 

予想される出力:

<p>Enterprise <span>integration</span> platform</p> 

は、私は彼らのワードエンタープライズと段落のすべての出現を検索します「エンタープライズ」

+5

_next text_とはどういう意味ですか? – Satpal

+0

'エンタープライズ'の後に表示されるテキストはすべてラップする必要があります – kravisingh

+0

$( "p"){ var texts = this.textContent.split( ""); 返信テキスト[0] + "" +テキスト[1] + "" +テキスト[2]; }); - それらを見つけるのにhttps://api.jquery.com/contains-selector/を使用してください – mplungjan

答えて

3

このコードの後に​​表示される任意のテキストをラップする必要があります。あなたの場合は、この正規表現は、Enterpriseの最初のオカレンスだけを交換することを言い換える

$("p:contains('Enterprise')").html(function() { 
 
    var texts = this.textContent.split(" "); 
 
    return texts.shift()+" <span>"+texts.shift()+"</span> "+texts.join(" "); 
 
});
span { color:red }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<p>Some stuff:</p> 
 
<p>Enterprise integration platform</p> 
 
<p>Enterprise architecture</p> 
 
<p>Enterprise service as a service</p>

1

var elements = document.querySelectorAll("p"); 
 

 
for (var i = 0; i < elements.length; i++) { 
 
    var element = elements[i]; 
 
    element.innerHTML = element.innerText.replace(/Enterprise (\S+)/, "Enterprise <span>$1</span>"); 
 
}
/* just style to highlight span */ 
 
span { 
 
    background-color: red; 
 
}
<p>Enterprise integration platform</p>

注後の単語が発生する可能性があります場合は、より多くの処理が必要になりますg接尾辞:/Enterprise (\S+)/gを追加する必要があるすべての文字列を置換する必要があります。

私はここに正規表現を使用しています、私はここで

  • Enterpriseそれを説明することができます - 明らかにEnterpriseテキストを検索します。
  • \S+ - 1つ以上の空白以外の文字を検索します。
  • (\S+) - この空白以外の文字グループをキャプチャして置き換えます($1を使用)。

Enterpriseの大文字と小文字を区別しない検索では、置換演算子を.replace(/(enterprise) (\S+)/i, "$1 <span>$2</span>")に書き換える必要があります。

大文字と小文字を区別しない検索にはiという接尾辞を使用していますが、いずれの場合も可能なので、enterpriseという語句を使用しています。

関連する問題