使用光标位置获取元素内的文本?

时间:2013-10-20 02:02:46

标签: javascript jquery

在我的项目中,我正在使用优秀且实用的jQuery TextRange插件。我在textarea的顶部有一个高亮div,我必须知道用户编辑的实际元素是什么。为了更好地理解,我将在下面使用很多例子。

在我的项目中,如果我在textarea上有这个文本:

Text that doesn't matter #this_matter and #this_too

我的亮点div中有这样的东西:

"Text that doesn't matter <b>#this_matter</b> and #this_too</b>"

一切都好,但是......

我需要知道我正在编辑的“标签”是什么。所以我认为使用职位来解决这个问题,但正如您将看到的,我有一些问题。在我的textarea中,我使用以下方法获取光标位置:

input = $('#post-input')
var cursorPosition = input.textrange('get','position')

有了这些信息,我需要知道我正在编辑的标签是什么。假设|是光标在textarea中的位置的符号,所以:

"Text that doesn't matter #this_matter and #this|_too"

必须返回<b>#this_too</b>元素,因为这是实际的#标签。另一个例子:

 "Text that doesn't matter #|this_matter and #this_too"

必须返回<b>#this_matter</b>

之后,我怎么能用光标位置信息返回正确的元素?

1 个答案:

答案 0 :(得分:0)

您可以使用document.elementFromPoint

document.elementFromPoint(event.clientX, event.clientY);