Range: deleteContents() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

Range.deleteContents() 方法會從文件中移除此範圍內所有完全選中的 節點。對於範圍開始或結束處的區域性選中的節點,僅刪除選中的文字部分,而節點本身保持不變。之後,該範圍會摺疊到最後一個選中節點的末尾。

<p>paragraph 1</p><p>paragraph 2</p><p>paragraph 3</p>
       ^----------- selection ------------^

deleteContents() returns:

<p>para</p><p>graph 3</p>

Range.extractContents() 不同,此方法不會返回一個包含已刪除內容的 DocumentFragment

語法

js
deleteContents()

引數

無。

返回值

無(undefined)。

示例

使用 deleteContents()

選中一些文字,可能跨越多個段落,然後單擊按鈕刪除選中的文字。開啟您的 DOM 檢查器以檢查更新後的 DOM 結構。

html
<p>paragraph 1</p>
<p>paragraph 2</p>
<p>paragraph 3</p>
<button id="delete">Delete selected text</button>
<button id="reset">Reset</button>
js
const button = document.getElementById("delete");
const reset = document.getElementById("reset");
const output = document.getElementById("output");

button.addEventListener("click", () => {
  const range = document.getSelection().getRangeAt(0);
  range.deleteContents();
});

reset.addEventListener("click", () => {
  window.location.reload();
});

規範

規範
DOM
# dom-range-deletecontents

瀏覽器相容性

另見