0

我有一个这样的字符串:

I like this video: <a href="http://www.youtube.com/watch?v=o03pXLuPl6A&hd=1">http://www.youtube.com/watch?v=o03pXLuPl6A&hd=1</a>

我想用 jQuery 删除与 YouTube 视频相关的文本和链接,所以它看起来像这样:

I like this video:

我怎样才能做到这一点?请记住,同一字符串中可能有多个链接需要删除。谢谢!

4

2 回答 2

7
$('a').each(function(){
   if(this.href.match(/youtube\.com/)) $(this).remove();
});
于 2013-10-05T14:57:18.723 回答
0

这将删除包含字符串“youtube.com”或“youtu.be”作为其 href 一部分的锚元素:

$('a').filter(function(){ return /youtube\.com|youtu\.be/.test(this.href); }).remove();

...除了它将它们从文档中删除并且您说您在字符串中包含该文本,因此您可以按以下方式构建该计划:

var bodyText = 'I like this video: <a href="http://www.youtube.com/watch?v=o03pXLuPl6A&hd=1">http://www.youtube.com/watch?v=o03pXLuPl6A&hd=1</a>';

var tmp = $("<div></div>").html(bodyText);
tmp.find('a').filter(function(){ return /youtube\.com|youtu\.be/.test(this.href); })
             .remove();
bodyText = tmp.html();

也就是说,创建一个 jQuery 对象,其中包含一个以您的字符串作为其内容的新 div,然后应用过滤器并删除锚点,然后将剩余内容分配回您的字符串变量。

于 2013-10-05T15:19:27.700 回答