我想根据光标位置将一个类附加到一个对象。
我理解range
的基础知识,可以获取/操作选定的文本,但我不知道如何使用光标将类附加到它当前所在的对象。
我可能会在游标上添加一个临时元素,然后遍历父元素并在删除临时元素之前附加类。这真的很麻烦,我必须分配一些东西来初始化它(键盘快捷键或keydown
)。
有什么想法吗?我一直在四处寻找,但没有发现任何我想要的东西。
答案 0 :(得分:0)
感谢John的领导以及更合适的搜索词的结果,我发现了这一点:
Javascript: Detect Carets Parent Node
要回答这个问题,这就是它的完成方式。
function getCursorParentNode()
{
var target = null;
if(window.getSelection)
{
target = window.getSelection().getRangeAt(0).commonAncestorContainer;
return((target.nodeType===1) ? target : target.parentNode);
}
else if(document.selection)
{
var target = document.selection.createRange().parentElement();
}
return target;
}
然后,根据您的喜好初始化它,例如:
$('.content').on('keydown',function(){
var target = getCursorParentNode();
target.className = 'red';
});