首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在通过contains()搜索的文本中添加下划线

如何在通过contains()搜索的文本中添加下划线
EN

Stack Overflow用户
提问于 2011-08-23 22:18:19
回答 3查看 3.3K关注 0票数 4
代码语言:javascript
复制
<div>John Resig</div>
<div>George Martin</div>
<div>Malcom John Sinclair</div>
<div>J. Ohn</div>
<script>
$("div:contains('John')").css("text-decoration", "underline");
</script>

上面的代码将添加下划线到包含"John".But的整个DIV中,如何才能只给"John“加下划线。

请谁来帮帮我。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-23 22:22:14

您必须在span中对文本进行换行:

代码语言:javascript
复制
$("div:contains('John')").each(function()
{
    var $el = $(this);
    $el.html( $el.html().replace(/John/g, '<span style="text-decoration: underline">John</span>') );
});

http://jsfiddle.net/GP96T/2/

正如@布拉德·克里斯蒂所指出的,只有当你知道你的属性中没有"John“,或者div没有孩子的时候,你才应该使用它。

票数 6
EN

Stack Overflow用户

发布于 2011-08-23 22:22:42

相反,您可以:

代码语言:javascript
复制
$oldcontent = $("div:contains('John')").html();
$("div:contains('John')").html($oldcontent.replace('John', '<u>John</u>');
票数 1
EN

Stack Overflow用户

发布于 2011-08-23 22:22:55

Hackish的方式:

代码语言:javascript
复制
<div>John Resig</div>
<div>George Martin</div>
<div>Malcom John Sinclair</div>
<div>J. Ohn</div>
<script>
    $("div:contains('John')").each(function(i,e){
        var $this = $(this);
        var html = $this.html()
            .replace(/John/g,'<span style="text-decoration:underline;">John</span>');
        $this.html(html);
    });
</script>

如图所示,here

但要小心,如果在链接或title标记中有"John“,这也将替换这些实例。例如:

代码语言:javascript
复制
<div><img src="..." title="This is John" /></div>

变成:

代码语言:javascript
复制
<div><img src="..." title="This is <span style="text-decoration:underline;">John</span>" /></div>

(我想这是不可取的)

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7162494

复制
相关文章

相似问题

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