javascript - 用于突出显示文本的 JQuery 选择器

标签 javascript jquery html css

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

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

$("突出显示的文本").hide();

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

最佳答案

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

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

关于javascript - 用于突出显示文本的 JQuery 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25195813/

相关文章:

javascript - PHP 中的 JavaScript 中的 PHP

javascript - 无论用户的时区如何,如何始终将日期设置为东部时间

javascript - 循环数据值并将其分配为段落上的类

javascript - 使用网格 ID 隐藏剑道网格工具栏

javascript - 使用 jQuery 自定义字母大小

javascript - 如何在 asp.net 页面中使用 javascript 创建弹出窗口 - 无法在 javascript 弹出窗口中传递值

javascript - div 操作

javascript - 用于使用 javascript/jquery 创建模板的模板 sdk

php - 如何在 php 页面加载时将下拉选择的值存储在变量中?

php - 由于下拉脚本,动态下拉列表不起作用