2016-05-17 74 views
1

我想知道如何在使用jquery的#標籤內容之前插入span標籤。對不起,這個問題。我對jquery仍然陌生。在#內容文本前插入span標籤

<script> 
    $(document).ready(function() { 
     var text = $(".name a").text(); 
     //alert(text); 
     if (text.contains("#")) { 
      alert("yes"); 
     } 
     else { 
      alert("no"); 
     } 
    }); 
</script> 

<div class="name"> 
<a href="">This is a link contens #104004</a> 
</div> 

輸出應該是這樣的

<div class="name"> 
<a href="">This is a link contens <span>#104004</span></a> 
</div> 

回答

0

試試這個示例:

$(document).ready(function() { 
 

 
    var 
 
     textElement = $(".name > a"), 
 
     text = textElement.text(); 
 

 
    textElement.html(text.replace(/#[0-9]+/g, '<span>$&</span>')); 
 
     
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="name"> 
 
<a href="">This is a link contens #104004</a> 
 
</div>

結果:

enter image description here

更新:

Object-Oriented JavaScript - Second Editionreplace()讓您更換與其他一些字符串匹配的文本。如果找到 匹配項,則如果要將匹配文本包含在 替換字符串中,則可以使用$ &訪問它。

例子:

var s = 'HelloJavaScriptWorld'; 

s.replace(/[A-Z]/g, "_$&"); // "_Hello_Java_Script_World" 
+0

爲什麼$&需要?如果替換那個牌子,我看不出來了!如果你喜歡在你的帖子中解釋。 –

+2

找到匹配項時,如果要將匹配的文本包含在替換字符串中,則可以使用$&來訪問它。以下是如何在比賽前添加下劃線,同時保持比賽。 var s = new String('HelloJavaScriptWorld'); s.replace(/ [A-Z]/g,_ _ &"); –

2
var text=$(".name a").text(); 
text.replace(/(\#[\w]*)/g,"<span>$1</span>"); 

林不知道是否會工作,請檢查出來。

1

基於@Shrikanth芽回答:

首先添加一個類,你要處理所有這些環節。我在這個例子中使用了class'hashcontainers'。然後,嘗試下面的代碼:

<script> 
    $(document).ready(function() { 

     $(".hashcontainers").each(function(index){ 
      var text = $(".name a").text(); 
      if (text.contains("#")) { 
       //alert("yes"); 
       var updatedHTMLString = text.replace(/(\#[\w]*)/g,"<span>$1</span>"); 
       $(this).html(updatedHTMLString); 
      }   
     });//each 
    }); 
</script> 

<div class="name"> 
<a href="" class="hashcontainers">This is a link contens #104004</a> 
</div> 
相關問題