【发布时间】:2017-01-29 12:51:13
【问题描述】:
我正在尝试仅替换文本,但没有触及任何其他标签。
<p>
<a href="login.php">
<i class="fa fa-sign-in"></i>
Login
</a>
</p>
$('p').each(function() {
$(this).text($(this).text.replace('Login', 'Anmeldung'));
});
不好的结果:
<p>
Anmeldung
</p>
我想要的结果:
<p>
<a href="login.php">
<i class="fa fa-sign-in"></i>
Anmeldung
</a>
</p>
我该怎么做?这只是一个示例,p 标签的深层结构可能完全不同。
【问题讨论】:
-
如果您可以选择的唯一元素是
p,您将需要递归遍历子元素和节点,并直接替换该元素中的text()。替换父级的text()会有去除HTML的效果 -
您要更改部分文本还是全部?
-
为什么只使用 jQuery?就好像你不知道 jQuery 不是一种语言...
-
@evolutionxbox jQuery 非常适合对 DOM 进行操作。如果他在他的应用程序中使用 jQuery,为什么还要使用更复杂的 vanilla js 解决方案?
标签: javascript jquery html text replace