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

时间:2012-08-30 06:51:41

标签: javascript contenteditable html

我有一个contenteditable div,我有一个span标记,其中包含一些文本。如何选择范围标记及其所有内容,因此当用户按退格键或删除时,范围及其内容将被删除?

更新:当我说选择时,我的意思是突出显示。很抱歉给您带来不便。

更新2:我正在思考'element.outerHTML.select()'。看看是否有帮助。

3 个答案:

答案 0 :(得分:3)

在Firefox中,您拥有允许您执行此操作的Selection API。将其与DOM2 Range APIyou have what you want

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

Selection API在未来的标准HTML Editing APIs中找到了它的方式,但它将在一段时间内推出,直到大多数浏览器都可用。

答案 1 :(得分:2)

昨天我回答your other question。我修改了伴随该答案的jsfiddle,please recheck it。在可编辑的范围内使用shift+delete以显示对话框并“选择”当前范围。

答案 2 :(得分:1)

试试这个:

var span = document.getElementById("myspan");

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