我想知道如何使用 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/