获取父节点p,即使其中有另一个标记

Getting parent node p even if there is another tag inside?

本文关键字:另一个 父节点 获取      更新时间:2023-09-26

我使用以下代码将一个类添加到.content内容可编辑div的p标记中(基于插入符号的位置):

var $content = $('.content'),
    $p = $content.find('p');
$content.on('keyup click', function(e) {
    var focusElement = window.getSelection().baseNode.parentElement;
    $p.removeClass('hover');
    $(focusElement).addClass('hover');
});

它适用于这样的结构:

<p>Text text</p>
<p class="hover">Text text</p>

问题出现在这样的结构上:

<p>Text text</p>
<p>Text <i>text</i></p>

p中的任何html标记似乎都会破坏代码,阻止它将hover类添加到p标记中。

对此有什么变通办法吗?

$content.on('keyup click', function(e) {
    $(window.getSelection().baseNode).closest('p').addClass('hover');
    $p.removeClass('hover');
});