2011-12-25 56 views
17

我想从我的网站中的某个元素中删除文本“By:”。我希望剩下的文字留在那里。我怎样才能实现这一点与jQuery?谢谢。jQuery从元素中删除特定文本

的HTML

<div id="text">By: Anonymous From Minnesota</div> 

我希望它只是:

<div id="text">Anonymous From Minnesota</div> 
+0

请张贴从什么元素的属性,什么你的HTML – themerlinproject 2011-12-25 05:17:05

+0

删除文本?像...文本输入字段的当前值?或者只是在div或p元素中的任意文本? – codercake 2011-12-25 05:19:55

+0

@themerlinproject @themerlinproject添加了HTML – henryaaron 2011-12-25 05:20:17

回答

28

如果你想找到的每一个元素 “到:” 在它并删除它,你可以试试这个:

$(':contains("By:")').each(function(){ 
    $(this).html($(this).html().split("By:").join("")); 
}); 

这可以消除任何元素中“By:”的出现。如果您想要定位特定类型的元素,只需更改$(':contains("By:")')以包含适合您的任何选择器。

+0

这看起来像我在找的东西,但是,由于某种原因,随机添加了一个逗号:http:// jsfiddle。 net/xSphc/ – henryaaron 2011-12-25 05:37:10

+0

哈!我忘了添加分隔符参数join()。我用join(“”)更新了答案。基本上它正在做的是用“By:”作为分隔符将字符串拆分成一个数组,然后将数组元素连接回到一个没有任何分隔符的字符串中。希望可以帮助:) – 2011-12-25 05:42:08

+1

如果你对基本的.split()。join()诗句.replace(// g,“”)的表现感兴趣,你可能会觉得这很有趣:http://jsperf.com/split-join-vs-regex-replace – 2011-12-25 05:50:31

3

var str = $("#text").text(); 
 
$("#text").text(str.substring(3));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<div id="text">By: Anonymous From Minnesota</div>

使用JavaScript的substring,让您的DIV的ID很容易地访问它:

HTML:

<div id="text">By: Anonymous From Minnesota</div> 

的jQuery:

var str = $("#text").text(); 
$("#text").text(str.substring(3)); 

你可以做到这一点在一个太行:

$("#text").text($("#text").text().substring(3)); 
9

使用正则表达式的更全面的解决方案。这将取代By:,即使您的字符串结构会发生变化。

var str = $('div').text().replace(/By:/g, ''); 
 
$('div').text(str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<div id="text">By: Anonymous From Minnesota</div>