我正在尝试使用jQuery搜索“contracting”一词的所有实例并将其包装在
中<strong>
标签。有没有办法用jQuery做到这一点?我要找的最终结果是
<strong>contracting</strong>.
答案 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);
在.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>"));
})
})()