2016-05-17 49 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> 
相关问题