var body = 'Alex, <a href="blah" title="jason">Jason</a>, Kate, how are you?";
我想使用JQuery从body中删除锚元素,然后在锚之后删除逗号,如果有的话。注意:为了方便起见,逗号将始终位于锚之后,其间没有其他字符。
答案 0 :(得分:1)
我假设(为了保持语法一致性)你还想删除锚点的内容。
首先,使用正则表达式删除逗号:
var body = 'Alex, <a href="blah" title="jason">Jason</a>, Kate, how are you?';
body = body.replace(/(<\/a>),/g, '$1')
然后允许jQuery处理字符串,你需要将它包含在一个元素中:
body = '<div>' + body + '</div>'
然后你可以删除元素
body = $(body).children('a').remove().end().html();
注意:上面的代码会移除文本中的所有 <a>
元素,但不会触及其他HTML元素。
答案 1 :(得分:0)
如果您正在考虑删除这样的元素,那么最好将它们包含在某些内容中以“标记它们”。你说的是“Jason”这个名字与取代的逗号有关,所以请将它们标记出去。 e.g:
var body = 'Alex, <span class="name"><a href="blah" title="jason">Jason</a>,</span> Kate, how are you?";
然后在jquery中删除你可以做类似的事情:
$('a').click(function(){ $(this).closest('.name').remove(); });
这是最好的方法,主要是因为您可以控制哪些文本元素很重要。正则表达式或删除下一个单个字符的某种方式将在您的示例中起作用,但是如果您想扩展句子会发生什么,例如:'Alex, <a href="blah" title="jason">Jason</a> (the farmer's son), Kate, how are you?'
。