如何选择span标记内的所有内容,包括span标记本身

How to select everything inside a span tag, including the span tag itself?

本文关键字:span 包括 何选择 选择      更新时间:2023-09-26

我有一个内容可编辑的div,其中有一个span标记,其中包含一些文本。如何选择span标记及其所有内容,以便当用户按下退格键或删除键时,span及其内容将被删除?

更新:当我说选择时,我指的是高亮显示。很抱歉给您带来不便。

更新2:我正沿着"element.outerHTML.select()"的思路思考。看看这是否有帮助。

在Firefox中,您有选择API,它允许您这样做。将其与DOM2范围API相结合,您就拥有了您想要的:

var r = document.createRange();
r.selectNode(domElement);
var s = window.getSelection();
s.removeAllRanges();
s.addRange(r);

选择API在未来的标准HTML编辑API中找到了自己的方法,但它还需要一段时间才能在大多数浏览器中使用。

昨天我回答了你的另一个问题。我修改了该答案附带的jsfiddle,请重新检查。在可编辑的范围内使用shift+delete打开对话框并"选择"当前范围。

试试这个:

var span = document.getElementById("myspan");
span.onclick = function() {
    var range = document.createRange();
    range.selectNodeContents(span);
    var sel = window.getSelection();
    sel.removeAllRanges();
    sel.addRange(range);
};​