JQuery选择器突出显示的文本 [英] JQuery selector for highlighted text

查看:131
本文介绍了JQuery选择器突出显示的文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



我为突出显示的文本使用什么,以便我可以(例如)隐藏它们:

$(Highlighted text)。hide();



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

解决方案

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

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



DEMO



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



来自DOM的元素:

  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();
}
返回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;
}



更新了DEMO


I want to know how to select Highlighted text using JQuery selector. For example, to select elements with a class, you use .class, for IDs, you use #id.

What do I use for highlighted text so that I can (for example) hide them:

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

What is the highlighted text selector, and how to hide highlighted text?

解决方案

This is one your are looking for i believe:

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

DEMO

Hide selected/highlighted text javascript

You have to get parent of Element from DOM:

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

Update

Fixed demo to hide text we have to find 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

这篇关于JQuery选择器突出显示的文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆