0

我允许我问一个问题,因为我对返回选择的父项的函数有一点问题。

$('input[type=button].btn_transform').click(function(){        

    var selectionObj = getSelected();//Function which gives me selection

    var theParent=selectionObj.anchorNode.parentNode;
    alert (theParent);    
})

例如这句话:“猫是<strong>灰色</strong>的”。

如果我手动选择“灰色”一词并单击我的按钮,该函数将返回我[object HTMLSpanElement]

但是,如果我通过双击选择相同的单词,该函数将返回我[object HTMLParagraphElement]

你知道为什么吗 ?

非常感谢。

4

1 回答 1

3

鼠标选择正在创建一个选择,该选择包含所有但完全位于文本节点内的文本“灰色”。双击正在创建一个选择,其中包括<strong>包含该文本节点的整个元素。可能没有视觉差异,但存在差异,正如所选内容(或您从所选内容获得的任何 Range)的 、anchorNode和属性中所反映的那样。如果管道代表选择边界,您将拥有以下内容:anchorOffsetfocusNodefocusOffset

鼠标选择:

the cat is <strong>|gray|</strong>

双击选择:

the cat is |<strong>gray</strong>|

于 2010-06-01T11:06:46.840 回答