javascript - 使用 replace() 但将 HTML 保留在结果中
问题描述
使用 jQuery 如何查找和替换单词但保留 HTML?当我这样做时replace()
,它会返回一个去除了 HTML 的字符串。
这是一个例子。我想替换Hello
为,Hi
但是当我使用此代码时,结果是剥离了所有 HTML。我知道我可以简单地用一个独特的选择器包装文本,但无法编辑 HTML。
(function($) {
var string = $('.banner-message');
string.each(function() {
var replaced = $(this).text().replace(/Hello /, 'Hi ');
$(this).html(replaced);
});
})(jQuery);
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
.banner-message {
background: #fff;
border-radius: 4px;
padding: 20px;
font-size: 25px;
text-align: center;
transition: all 0.2s;
margin: 0 auto;
width: 300px;
}
button {
background: #0084ff;
border: none;
border-radius: 5px;
padding: 8px 14px;
font-size: 15px;
color: #fff;
}
.banner-message.alt {
background: #0084ff;
color: #fff;
margin-top: 40px;
width: 200px;
}
.banner-message.alt button {
background: #fff;
color: #000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="banner-message">
Hello World
<button>Change color</button>
</div>
<div class="banner-message">
Hello World
<button>Change color</button>
</div>
谢谢...
解决方案
你做
var replaced = $(this).text().replace(/Hello /, 'Hi ');
-----------------------^^^^
该.text()
函数返回内容的文本版本。您需要获取html版本的方法 :)
提示:您已经在同一个片段中找到了您正在寻找的方法
推荐阅读
- java - 重新排列 ArrayList 元素
- php - Codeigniter 导航栏调整/对齐问题
- reactjs - 如何为 SVG 圆圈内的图像添加边框
- ios - 没有应用内购买的积分购买购买游乐设施
- python-3.6 - randomSearchCv/gridSearchCv 冻结 n_jobs>1
- ruby-on-rails - 如何根据用户分配的角色限制用户进行编辑和删除操作
- c# - 如何使用 stripe api 更新客户发票详细信息
- python - ImportError:没有名为 grid_search、learning_curve 的模块
- php - 正则表达式 preg_split
- python - 使用条件拆分字符串