jQuery - 获取选择的段落、长度等

Posted

技术标签:

【中文标题】jQuery - 获取选择的段落、长度等【英文标题】:jQuery - get selection's paragraph, length, etc 【发布时间】:2011-10-23 20:32:09 【问题描述】:

我正在尝试完成一些我认为在 jQuery 中应该很简单的事情。

我的网站上有很长的文字。 每当用户选择(突出显示)文本时,我都需要获取以下信息:

选择开始的段落 选择开始的段落中的字符 选择的长度 选择结束的段落(如果突出显示超出一个段落) 选择结束的段落中的字符

先谢谢了;)

【问题讨论】:

你试过什么..? 【参考方案1】:

您需要将 javascript 用于处理文本选择的任何事情。 jQuery 没有内置函数来检测选择从哪里开始或在哪里结束。 Rangy http://code.google.com/p/rangy/ 可以用于此目的。

【讨论】:

【参考方案2】:

玩弄

window.getSelection
document.getSelection
document.selection.createRange()

查看此站点上的示例:http://www.codetoad.com/javascript_get_selected_text.asp

【讨论】:

【参考方案3】:

我想我之前在 Stack Overflow 上已经回答了所有这些问题。反过来:

来自here 的getAncestor() 和来自here 的getSelectionBoundaryContainerElement() 的组合将完成这项工作 这取决于您所说的“选择开始的段落中的字符”是什么意思。如果段落内部可能有其他元素而不仅仅是一个文本节点,这会变得有点棘手。你可以适应this。 同样,这取决于您所说的“选择的长度”是什么意思。你可以get the selected text as a string 并使用它的长度属性。 查看选择开始的答案 查看选择开始的答案

您需要对 API 进行一些研究才能做到这一点,这不是坏事。

【讨论】:

以上是关于jQuery - 获取选择的段落、长度等的主要内容,如果未能解决你的问题,请参考以下文章

jQuery:使用变量作为选择器[重复]

jquery 或者js 怎么获取页面光标所在的元素

我如何:使用 JavaScript 选择一个段落(点击时)?

jquery 或者js 怎么获取页面光标所在的元素?

洛谷—— P1419 寻找段落

段落选择器内的标题不起作用