jQuery在<strong>标记</strong>中包含某些单词

时间:2012-04-24 14:33:25

标签: jquery regex

我正在尝试使用jQuery搜索“contracting”一词的所有实例并将其包装在

<strong>

标签。有没有办法用jQuery做到这一点?我要找的最终结果是

<strong>contracting</strong>.

5 个答案:

答案 0 :(得分:5)

你可以这样做:

$("p").each(function() {
    $(this).html($(this).html().replace(/contracting/g, "<strong>contracting</strong>"));
});​

<强> Live example

答案 1 :(得分:1)

您必须将您正在替换的内容包含在<span> <div>内,并附带一个ID才能生效。

HTML:

<div id="content">Contracting</div>​

JS:

content=document.getElementById("content");

​content.innerHTML=content.innerHTML.replace(/contracting/gi,"<strong>$&</strong>");​​​​​​​​​​​

的jsfiddle:http://jsfiddle.net/jwTz8/

JSfiddle工作但字体对我来说没有变化,你可能需要检查元素(右键单击Contracting,inspect元素)以查看强标记。

答案 2 :(得分:0)

这个怎么样?

var yourElement = $("#your-element-selector");

yourElement.html(yourElement.html().replace("yourword", "<strong>yourword</strong>"));

答案 3 :(得分:0)

我写了一个小插件来执行此操作,但是它目前有一个错误,可以防止它在同一个元素上多次有效使用而不重置它的内容。这是一个jsfiddle: http://jsfiddle.net/NFDqe/1/

$("#content").highlightText("contracting","bold",true);
在这种情况下,

bold是一个类,它被添加到包含font-weight: bold

文本的范围内

https://github.com/tentonaxe/jQuery-highlightText

如果您发现另一个插件在没有我的错误的情况下执行相同的操作,我不会感到惊讶。

<强>更新

您还可以将插件的defaultTagName设置为strong,以获取强标记,而不是span标记。

$.fn.highlightText.defaultTagName = "strong";
$("#content").highlightText("contracting",true);

http://jsfiddle.net/NFDqe/6/

在.html()方法上使用此方法的好处是,它不会触及可能在标记或表单输入值中找到的类名或ID。您可以将#content替换为body

,从而影响整个页面

<强>更新

此外,您可以传递"contracting"

等正则表达式,而不是/contracting/ig

答案 4 :(得分:0)

(function(){

$("p").each(function() {

var self = $(this);

self.html(self.html().replace(/contracting/gi, "<strong>$&</strong>"));

})

})()