2011-06-07 91 views
2

我可以使用jQuery删除div内的部分文本。jquery部分删除文本

像这样:

<div class="entry"> 
Published May 18th 2011 - Approuved - Expire May 18 th 2012<br>Source: SuperSite 
</div> 

我想删除Approuved - 过期5月18日2012

那么结果将是:

<div class="entry"> 
    Published May 18th 2011 <br>Source: SuperSite 
    </div> 
+0

div的内容是动态的还是静态的? – 2011-06-07 10:06:17

+0

动态为日期“2011年5月18日”,“2012年5月18日”和“超级站点” – user472285 2011-06-07 10:09:43

回答

7

您可以使用jQuery选择你的元素/ HTML,但JavaScript有一个内置函数replace,将做你所需要的:

$('div.entry').html($('div.entry') 
          .html() 
          .replace('Approuved - Expire May 18 th 2012', '')) 

或者使用RegExp

如果你想用Approuved - Expire随时更换开始什么:

$('div.entry').html($('div.entry') 
          .html() 
          .replace(/Approuved - Expire[^<]*/, '')) 
+0

如果日期可以更改会怎么样? – user472285 2011-06-07 10:07:52

+0

你可以使用正则表达式。 – manji 2011-06-07 10:09:44

0
$(".entry").html(($(".entry").html().replace("Approuved - Expire May 18 th 2012",""))) 
+0

2012年5月18日是动态的 – user472285 2011-06-07 10:23:04

1

试试这个:

$(".entry").html(function(i, htm){ 
    return htm.split("-")[0]; 
}); 

HTML()也有一个函数传递给它,如果y您想要在节点内处理HTML,然后重置它。

下面是关于jsfiddle的演示:http://jsfiddle.net/nKJWn/

+0

我想保留来源:SuperSite – user472285 2011-06-07 10:14:15