突出显示文本的JQuery选择器

时间:2014-08-08 03:53:26

标签: javascript jquery html css

我想知道如何使用JQuery选择器选择突出显示的文本。 例如,要选择具有类的元素,使用.class,对于ID,您可以使用#id

我如何使用突出显示的文字,以便我可以(例如)隐藏它们:

$("Highlighted text").hide();

什么是突出显示的文字选择器,以及如何隐藏突出显示的文字?

2 个答案:

答案 0 :(得分:3)

这是你正在寻找的我相信:

text = window.getSelection().toString();

DEMO

隐藏所选/突出显示的文本javascript

您必须从DOM获取Element的父级:

function getSelectionParentElement() {
    var parentEl = null, sel;
    if (window.getSelection) {
        sel = window.getSelection();
        if (sel.rangeCount) {
            parentEl = sel.getRangeAt(0).commonAncestorContainer;
            if (parentEl.nodeType != 1) {
                parentEl = parentEl.parentNode;
            }
        }
    } else if ( (sel = document.selection) && sel.type != "Control") {
        parentEl = sel.createRange().parentElement();
    }
    return parentEl;
}

NEW DEMO

更新

修复了隐藏我们必须找到startOffset

的文字的演示
function getStartOffset() {
    var sel = document.selection, range, rect;
    var x = 0, y = 0;
    if (sel) {
        if (sel.type != "Control") {
            range = sel.createRange();
            range.collapse(true);
        }
    } else if (window.getSelection) {
        sel = window.getSelection();
        if (sel.rangeCount) {
            range = sel.getRangeAt(0).cloneRange();
            if (range.getClientRects) {
                range.collapse(true);
            }
        }
    }
    return range.startOffset;
}

Updated DEMO

答案 1 :(得分:0)

 if($("idDiv").html().contains('Highlighted text')==true)
 {
   var a=$("#idDiv").html();
   a=a.replace("Highlighted text","<p id='highlightedtext'>Highlighted text</p>");
   $("#idDiv").html(a);
   $("#highlightedtext").hide();
  }

以上代码检查div中突出显示的文本,如果发现它在p标记中设置了带有id的文本并使用该ID,则可以将其隐藏