javascript - 在 span 元素中换行文本

标签 javascript jquery html css

我尝试根据 data-text 在 span 中包装一些文本。

例如,如果我有这段代码:

<div data-text="world">Hello World We Love JavaScript</div>

我想这样包装它:

<div data-text="world">Hello <span>World</span> We Love JavaScript</div>

我曾尝试使用 jQuery 的 replace() 方法来解决这个问题,但我还没有找到正确的解决方案:

$("div").text(function (index, text) {
    return text.replace($("div").data("text"), "<span>" + $("div").data("text") + "</span>");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div data-text="Hello">Hello <span>World</span> We Love JavaScript</div>

最佳答案

使用html()带有回调的方法,并使用带有 word boundary 的属性值生成正则表达式(只匹配确切的词)用包裹的范围替换词。

$('div[data-text]').html(function(_, htm) {
  return htm.replace(new RegExp('\\b' + $(this).data('text') + '\\b', 'ig'), '<span>$&</span>')
})
div span {
  color: red
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-text="Hello|love">Hello World We Love JavaScript</div>

关于javascript - 在 span 元素中换行文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42066560/

相关文章:

css - firefox 在图像之间显示小框

javascript - 即使 ng-if 在 Angular 中为 false,div 也会在前几秒渲染

python - 用于读取标签 Python 的正则表达式

javascript - 按最近的图像排序,并过滤喜欢 > x 的图像

jquery - jvectormap:如何在标记标签/工具提示中实现 HTML 而不是简单的字符串?

javascript - 如何根据输入的json动态加载html元素?

javascript - 如何检测页面上的任何点击?

javascript - 如何使用 jsreport 和 jsreport Chrome Pdf 渲染 1k pdf 文件?

javascript - 找不到有关单击功能的文档

javascript - 调整 iframe 大小? - Webkit 或 Firefox