2016-11-18 9 views
0

の周りにhtmlタグを追加します。私は2個の以上のタグ付き段落を持っている:テキストコンテンツ

<p>#tag1 #tag2</p> 

は今、私はすべてのタグを検索し、このようにそれらをラップしたい:

<p><span class="someClass">#tag1</span> <span class="someClass">#tag2</span></p> 

答えて

0

$('p:contains("#")').each(function() { 
 
    var tags = $(this).text().split(' '); 
 
    var wrapped_tags = ''; 
 

 
    tags.forEach(function(tag) { 
 
     wrapped_tags += '<span class="someClass">'+tag+'</span> '; 
 
    }); 
 

 
    $(this).html(wrapped_tags); 
 
});
.someClass { 
 
    color:red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p>#tag1 #tag2</p>

+0

#で始まる任意の単語に一致しますタグが混在していたり​​、混在している場合) –

+0

@ freedomn-mうん、私はopには多くのpharagrapがあり、その中にはタグしか入っていないと仮定している。 – Sojtin

+0

@ freedomn-mとにかくあなたの答えはより良い – Sojtin

2

.html()には、現在の値を渡すコールバックを使用できます

#\w+\b 

意味:と正規表現を使用する。これはまた、問題に(ただし明確ではないが非「タグ」をラップする

$("p").html(function(index, html) { 
 
     return html.replace(/(\#\w+\b)/g, "<span>$1</span>") 
 
     }); 
 
     
span { color: orange }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p>#tag1 #tag2</p> 
 
<p>Here's another #tag3</p>

関連する問題