突出显示不同html标记内的文本

时间:2014-07-13 12:14:41

标签: javascript html

我想强调 elvis presley

<div id="test">
    <p>elvis</p>
    <p id="tag1">my name is elvis</p>
    <p id="tag2">presley</p>
</div>

3 个答案:

答案 0 :(得分:0)

使用js你可以试试这个:

<强> JS

var elvis = document.getElementsByTagName('p')[0];
var presley = document.getElementById("tag2")
elvis.style.color = "blue";
presley.style.color = "blue";

fiddle

答案 1 :(得分:0)

jQuery方法

假设您始终需要tag1tag2的最后一句话。

<强> Fiddle


<强> JS

这会找到tag1tag2中的最后一个字,然后在span

中添加.highlight
$("#tag1,#tag2").html(function(index, old) {
    return old.replace(/(\b\w+)$/, '<span class="highlight">$1</span>');
});

<强> CSS

.highlight {
    background:yellow;
}

使用这个JS作为灵感,可以很容易地操作文本。

答案 2 :(得分:0)

您可以在此处查看演示http://jsfiddle.net/5L4kW/1/

$("document").ready(function(){
highlightText('elvis');
highlightText('presley');
})    
function highlightText(val)
{
var src_str = $('div').html();
var term = val;
term = term.replace(/(\s+)/,"(<[^>]+>)*$1(<[^>]+>)*");
var pattern = new RegExp("("+term+")", "gi");
src_str = src_str.replace(pattern, "<mark>$1</mark>");
src_str = src_str.replace(/(<mark>[^<>]*)((<[^>]+>)+)([^<>]*    <\/mark>)/,"$1</mark>$2<mark>$4");
$('div').html(src_str);
}