使用jQuery移除超链接内的strong标签:代码失效问题排查
问题分析:移除a标签内strong标签失败的原因
问题所在
逻辑完全偏离需求
你的代码是把整个<a>标签替换成它的子元素(也就是<strong>标签),结果是删掉了超链接,反而保留了你想要移除的<strong>,和目标完全相反。需求实现思路错误
你要的是保留<a>标签,移除其中的<strong>,但你的代码逻辑是删除<a>、留下<strong>,方向完全搞反了。
正确实现代码
如果你想保留a标签和文本,只移除strong标签,可以用下面两种写法:
写法1(遍历处理):
$("a:has(strong)").each(function() { // 把strong标签替换成它的文本内容 $(this).find("strong").replaceWith(function() { return $(this).text(); }); });
写法2(更简洁):
$("a strong").replaceWith(function() { return this.textContent; });
执行后,HTML会变成:
<p>This is his: “<u><a href="https://secure.nm.com/">Fourth and Final Prediction</a></u>.”</p>
这样就达到了移除a标签内strong标签的目的,同时保留了超链接和文本内容。
内容的提问来源于stack exchange,提问作者gilessmith
相关产品推荐
相关产品推荐

