我有这样的结构:
<div contenteditable="true">
<em class="class1">__<em>
<em class="class2">:<em>
<em class="class1">__<em>
<em class="class2">:<em>
<em class="class1">__<em>
</div>
我如何获得专注于<em>
的DOM或JQuery对象?
document.activeElement
返回将军<div>
window.getSelection().focusNode
返回重点<em>
答案 0 :(得分:1)
em
标签实际上只应用于设置元素文本的样式,这可以使用CSS更有效地完成。话虽这么说,你可以使用类似的东西追捕聚焦元素:
window.getSelection().focusNode.parentElement;
这将返回您要查找的实际em
元素。你可以使用jQuery选择器更好地掌握它:
$(window.getSelection().focusNode.parentElement);
这是Fiddle
答案 1 :(得分:1)
查找一个查询以匹配您所知道的所有元素,以了解它们是否有焦点,例如
$("[contenteditable=true] em")
然后,继续关注事件
var lastFocused;
$("[contenteditable=true] em").focus(function(e) {
lastFocused = e.target;
});
你将在lastFocused var上拥有焦点元素,确保在可能的情况下限制你想要的选择元素类型