javascript - 更改 .text() 内容并保留子 html

标签 javascript jquery

你能告诉我如何在不更改所有子 html 的情况下从这个 span 标签中删除字符 @ 吗?

$('button').click(function() {
  // ...
});
#name {
  background-color: #ccc
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span>
  <span id="name">
    <a href="#">Harry</a>
  </span> 
  
  says: Hello @<span id="name">
    <a href="#">Hermione</a>
  </span>
</span><br />

<button>Remove</button>

我的思路:获取父级.text(),拆分字符@,覆盖父级文本(parent.text('') ) 并将 2 个部分附加到父级。但是这种方式有一个大问题:不会保留所有子 html。

最佳答案

我在外部 <span> 添加了一个 id并对您的姓名 ID 进行重复数据删除。

$('button').click(function () {

  $('#outer').html($('#outer').html().replace(/@/,''));
  
});
#name {
  background-color: #ccc
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id='outer'><span id="name"><a href="#">Harry</a></span> says: Hello @<span id="name2"><a href="#">Hermione</a></span></span>

<br />

<button>Remove</button>

关于javascript - 更改 .text() 内容并保留子 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38571470/

相关文章:

javascript - 溢出时将内容移动到另一个 div

javascript - Angular ng-click 不适用于数据切换 ="toggle"

javascript - ng-click 在 ng-repeat 中只能工作一次

javascript - offset().top 在 Safari 中不起作用

wcf - jQuery POST 不发送 JSON 数据

javascript - Materialize CSS 在表单字段上显示错误

Javascript getAttribute 对图像返回 null

javascript - jQuery .animate() 加速?

javascript - 如何创建一个可以自然键入的输入字段,然后将其转换为 HTML?

javascript - 移动端单列布局,桌面端双列布局