要刪除textarea中光標所在的行,可以按照以下步驟進行:
下面是一個示例代碼,演示如何實現這個功能:
<!DOCTYPE html>
<html>
<body>
<textarea id="myTextarea" rows="4" cols="50"></textarea>
<button onclick="deleteCurrentLine()">刪除當前行</button>
<script>
function deleteCurrentLine() {
// 獲取textarea元素
var textarea = document.getElementById("myTextarea");
// 獲取文本內容
var content = textarea.value;
// 獲取光標的位置(起始和結束位置)
var startPos = textarea.selectionStart;
var endPos = textarea.selectionEnd;
// 根據光標位置找到光標所在行的起始和結束位置
var startLinePos = content.lastIndexOf("\n", startPos - 1) + 1;
var endLinePos = content.indexOf("\n", endPos);
// 刪除光標所在行的內容
var updatedContent = content.slice(0, startLinePos) + content.slice(endLinePos);
// 更新textarea中的文本內容
textarea.value = updatedContent;
}
</script>
</body>
</html>
在上述示例中,我們首先獲取textarea元素和其中的文本內容。然后,我們使用selectionStart
和selectionEnd
屬性獲取光標的起始和結束位置。接下來,使用lastIndexOf
和indexOf
方法找到光標所在行的起始和結束位置。最后,我們使用slice
方法刪除光標所在行的內容,并將更新后的文本內容重新設置到textarea中。
請注意,這個示例只能刪除光標所在的行,如果光標選中了多行文本,則只會刪除第一行。如果你希望能夠處理多行刪除,請修改代碼以適應你的需求。