我的问题旨在找到从div元素中删除子元素的最简单方法。在本例中,可以是Apple、橙子或Banana。这意味着您可以将光标放在其中一个单词上,然后单击delete child。
我想的唯一办法是分两步走:
- 使用returnIndexOfChild()返回所选子级的索引(自定义构建)
- 使用removeChild方法
我的意思是当你有一个大的文本java脚本引擎必须循环通过整个文本找到索引。有没有更直接的方法,如删除锚节点的选择对象?
//html part
<div contentEditable="true" id="editableField"><b>Apple</b><i>Orange</i><b>Banana</b></div>
<button onclick="deleteChild()"> Delete</button>
//javascript part
var selection = document.getSelection();
myDiv = document.getElementById("editableField");
//Returns index of selected child (1)
function returnIndexOfChild(){
let i = 0;
for (i; i < myDiv.childNodes.length; i++){
if(selection.anchorNode.parentElement === myDiv.childNodes[i]){
console.log(i);
break;
};
}
return i;
}
//Removing Child(2)
function deleteChild (){
myDiv.removeChild(myDiv.childNodes[returnIndexOfChild()]);
}
2条答案
按热度按时间qhhrdooz1#
您可以只对元素本身调用
remove()
wlsrxk512#
2种解决方案:
我去掉了
getSelection()
,它使删除项目变得复杂,你关心使用getSelection()
吗?我应该在答案中使用它吗?