在jQuery中用span包装一些指定的单词?

在jQuery中用span包装一些指定的单词?,jquery,html,highlight,Jquery,Html,Highlight,我想知道用span标记包装某些特定单词的最方便的方法 例如: 我有一个词,那就是狗。原文如下: I have a dog, do you have a dog? 输出应该是这样的: I have a <span class="highlight">dog</span>, do you have a <span class="highlight">dog</span>? 我有一只狗,你有狗吗? 有什么帮助吗 编辑: 注意,它还应该包装单词,即使

我想知道用span标记包装某些特定单词的最方便的方法

例如: 我有一个词,那就是狗。原文如下:

I have a dog, do you have a dog?
输出应该是这样的:

I have a <span class="highlight">dog</span>, do you have a <span class="highlight">dog</span>?
我有一只狗,你有狗吗?
有什么帮助吗

编辑: 注意,它还应该包装单词,即使它们不是不可侵犯的(Peter dog)。希望你能拿到。

这里有一个有用的方法

它真的很容易使用,而且效果很好

编辑-这是我一个非常古老的答案。我很遗憾只链接了letting.js库而没有包含其名称。这座图书馆很有用,尽管我不确定7年后鲁伯特先生是否会继续积极维护它

字母所做的是通过DOM的选定区域中的文本节点,将单个字母和/或单词(可配置)包装在
标记中,然后可以设置样式。它简单但有效。即使您不想使用它,代码也不是很广泛,而且具有指导性。

您可以使用。以下是一个基本示例:

$('#container').html($('#container').html().replace(/(dog)/g,'<span class="highlight">$1</span>'));
$(“#container').html($(“#container').html()。替换(/(dog)/g,“$1”);

.val()应仅适用于表单元素。这里需要.text()-如果我没有错的话atm.You没有错的话-考虑到原始问题,这个答案实际上不起作用,它是关于运行文本中的单词,而不是表单元素中的单词。即使这样,在表单元素值中放置span标记也不会起作用。代码已修复并经过测试。html()和text()都可以正常工作。为了清晰起见,您应该使用变量重新构建此代码,使其更具可读性,这会很好。我还想知道如何使用变量而不是硬编码字符串来完成此工作。在StackOverflow上不需要使用tinyurl,这就是Markdown的用途。请在提问时,不要将标题限制为jQuery解决方案,jQuery不是一种语言,JS是,因此解决方案应该是Javascript。