首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一个元素中找到一个文本字符串,并用一些span标记将它括起来

在一个元素中找到一个文本字符串,并用一些span标记将它括起来
EN

Stack Overflow用户
提问于 2013-04-19 02:27:27
回答 6查看 59.9K关注 0票数 51

我想在一个元素中找到一个文本字符串,并用一些span标记将它括起来。例如。

发自:

代码语言:javascript
复制
<h2>We have cows on our farm</h2>

至:

代码语言:javascript
复制
<h2>We have <span class='smallcaps'>cows</span> on our farm</h2>

我试过了:

代码语言:javascript
复制
$("h2:contains('cow')").each(function() {
 $(this).text().wrap("<span class='smallcaps'></span>");
});

但这只包装了整个包含h2的标签。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-04-19 02:32:18

代码语言:javascript
复制
$("h2:contains('cow')").html(function(_, html) {
   return html.replace(/(cow)/g, '<span class="smallcaps">$1</span>');
});

http://jsfiddle.net/w5ze6/1/

票数 85
EN

Stack Overflow用户

发布于 2013-04-19 02:31:04

另一种方法是按关键字拆分,并与更新后的html连接。

代码语言:javascript
复制
$("h2:contains('cow')").html(function(_, html) {
   return html.split('cow').join("<span class='smallcaps'>cow</span>");
});

注意:我还没有测试过这一点,但我假设这会比做一个替换更糟糕,但为了提供信息,我无论如何都会把它包括进来。

票数 17
EN

Stack Overflow用户

发布于 2018-06-28 04:02:39

这是@undefined答案的一个变体,它循环遍历一组项目:

代码语言:javascript
复制
var barnyardArray = [
    'cow',
    'horse',
    'chicken',
    'hog',
    'goat',
    'goose',
    'duck',
    'llama'
];

$.each(barnyardArray, function (index, value) {
    $("p:contains(" + value + ")").html(function (_, html) {
        var regex = new RegExp(value, 'g');
        return html.replace(regex, '<span class="smallcaps">' + value + '</span>');
    });
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16090487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档