Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 粘贴或删除某些内容后,如何将元素从DOM中取出?_Javascript_Jquery_Contenteditable - Fatal编程技术网

Javascript 粘贴或删除某些内容后,如何将元素从DOM中取出?

Javascript 粘贴或删除某些内容后,如何将元素从DOM中取出?,javascript,jquery,contenteditable,Javascript,Jquery,Contenteditable,我正在使用jQuery的remove()函数删除contenteditable区域中粘贴/删除的所有内容,除了文本。我对禁用图像特别感兴趣 我试过了 函数removeImg(){ setInterval(函数(){ $(“#editableDiv”).contents(“:not(p)”).remove(); }, 1); } #可编辑div{ 左侧填充:10px; 宽度:100%; 边框:纯色1px蓝色; } img{ 宽度:100px; 右边距:20px; } 您粘贴或放置在此处的图像应

我正在使用jQuery的
remove()
函数删除
contenteditable
区域中粘贴/删除的所有内容,除了文本。我对禁用图像特别感兴趣

我试过了

函数removeImg(){
setInterval(函数(){
$(“#editableDiv”).contents(“:not(p)”).remove();
}, 1);
}
#可编辑div{
左侧填充:10px;
宽度:100%;
边框:纯色1px蓝色;
}
img{
宽度:100px;
右边距:20px;
}

您粘贴或放置在此处的图像应自动删除


您可以使用以下图像:


复制粘贴或拖放它们都不起作用…

我想你不需要时间间隔。只需将内容设置为

function removeImg() {
document.getElementById("editableDiv").innerHTML = "<p>Images that you paste or drop here should be automatically removed.</p>";
}

希望这有帮助

我想你不需要间隔时间。只需将内容设置为

function removeImg() {
document.getElementById("editableDiv").innerHTML = "<p>Images that you paste or drop here should be automatically removed.</p>";
}

希望这有帮助

我认为您想从正文中删除元素,而不是
contenteditable div
? 然后你可以这样做:

-查找所有图像,添加
addEventListener
mousedown

-按下鼠标添加自动递增的id,在本例中:
clicked2
++数字。 这样做的目的是,即使用户不删除项目,您也拥有唯一的id。每次鼠标按下时,新id都会添加到单击的元素上。如果id不适合你,你可以去上课或做任何事情

-然后在drop上调用您的函数,以删除元素(如果其下垂且具有最后生成的id)

您可以对任何元素选择器应用相同的逻辑,而不仅仅是
img
,只需使选择器
document.queryselectoral('body*')

var i=0;
var removeID=“”;
[…document.querySelectorAll('img')].forEach(img=>{
img.addEventListener('mousedown',event=>{
img.id=“单击”+(++i);
console.clear();
removeID=img.id;
console.log(removeID);
})
})
函数removeImg(){
getElementById(removeID.remove();
}
#可编辑div{
左侧填充:10px;
宽度:100%;
边框:纯色1px蓝色;
}
img{
宽度:100px;
右边距:20px;
}

您粘贴或放置在此处的图像应自动删除


您可以使用以下图像:


复制粘贴或拖放它们都不起作用…

我想您想从正文中删除元素,而不是
contenteditable div
? 然后你可以这样做:

-查找所有图像,添加
addEventListener
mousedown

-按下鼠标添加自动递增的id,在本例中:
clicked2
++数字。 这样做的目的是,即使用户不删除项目,您也拥有唯一的id。每次鼠标按下时,新id都会添加到单击的元素上。如果id不适合你,你可以去上课或做任何事情

-然后在drop上调用您的函数,以删除元素(如果其下垂且具有最后生成的id)

您可以对任何元素选择器应用相同的逻辑,而不仅仅是
img
,只需使选择器
document.queryselectoral('body*')

var i=0;
var removeID=“”;
[…document.querySelectorAll('img')].forEach(img=>{
img.addEventListener('mousedown',event=>{
img.id=“单击”+(++i);
console.clear();
removeID=img.id;
console.log(removeID);
})
})
函数removeImg(){
getElementById(removeID.remove();
}
#可编辑div{
左侧填充:10px;
宽度:100%;
边框:纯色1px蓝色;
}
img{
宽度:100px;
右边距:20px;
}

您粘贴或放置在此处的图像应自动删除


您可以使用以下图像:


复制粘贴或拖放它们都不起作用…

没有一个答案能解决我想要实现的目标。最后通过更改以下内容来修复它:

函数removeImg(){
setInterval(函数(){
$(“#editableDiv”).contents(“:not(p)”).remove();
}, 1);

}
没有一个答案能解决我想要实现的目标。最后通过更改以下内容来修复它:

函数removeImg(){
setInterval(函数(){
$(“#editableDiv”).contents(“:not(p)”).remove();
}, 1);
}