突出显示JQuery中的重叠文本

时间:2010-03-16 09:19:38

标签: jquery highlighting

我有这个简单的HTML:

"Many things are in my room: a bed, a desk, and a computer."

这些短语:

"things are"
"are in my room" 
"room: a bed"

在JQuery中,是否有某种方法可以循环显示短语列表,并突出显示在文本中的短语,并按颜色或边框等划分重叠?

我知道有简单的荧光笔,但不会这样做。也许是一些覆盖不透明的东西?谢谢!

3 个答案:

答案 0 :(得分:2)

不幸的是,我所知道的荧光笔都不能满足你的要求,特别是因为HTML只是纯文本。

移动高级荧光笔只会将三个独立的块压缩成一个整体并突出显示所有内容。

如果真的需要做类似的事情,你可以获得每个块并比较它是否有任何重叠。然后,如果有,则从每个块中删除重叠部分并创建一个新的“重叠”突出显示,如果这是有道理的。

答案 1 :(得分:1)

有一个名为anotaterjs的伟大的js thinggy可能就是这样做的。它支持嵌套突出显示,并允许您为突出显示添加注释。

enter image description here

答案 2 :(得分:1)

我必须达到类似的效果,而且我已经做了很多工作。 我找到了类似的解决方案。

http://jsfiddle.net/pw9kkg2x/34/

var today = newDate();
var dd = today.getDate();
var mm = today.getMonth();
var yyyy = today.getFullYear();

if (dd = 1 || 21 || 31) {
    dd = dd + 'st'
} else if (dd = 2 || 22) {
    dd = dd + 'nd'
} else if (dd = 3 || 23) {
    dd = dd + 'nd'
} else {
    dd = dd + 'th'
}

if (mm = 0) {
    mm = "JANUARY";
} else if (mm = 1) {
    mm = "FEBRUARY";
} else if (mm = 2) {
    mm = "MARCH";
} else if (mm = 3) {
    mm = "APRIL";
} else if (mm = 4) {
    mm = "MAY";
} else if (mm = 5) {
    mm = "JUNE";
} else if (mm = 6) {
    mm = "JULY";
} else if (mm = 7) {
    mm = "AUGUST";
} else if (mm = 8) {
    mm = "SEPTEMBER";
} else if (mm = 9) {
    mm = "OCTOBER";
} else if (mm = 10) {
    mm = "NOVEMBER";
} else {
    mm = "DECEMBER";
}

today = dd + '|' + mm + '|' + yyyy;
document.write(today);