在我的项目中,我正在使用优秀且实用的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>
。
之后,我怎么能用光标位置信息返回正确的元素?
答案 0 :(得分:0)
您可以使用document.elementFromPoint:
document.elementFromPoint(event.clientX, event.clientY);