在可满足的范围内保留至少一个P元素

我有一个满足于

元素的内容,如下所示

 

dummy content here !!!!!

当我单击键盘上的退格键直到它删除所有文本时,如果我再次单击退格键,它也会删除

元素! 在我的情况下,我想在那里至少保留一个

元素

 $(document).on('keydown', '[contenteditable=true]', function(e){ var contenteditable = $(this) if(e.keyCode == 8){ // if backspace var p = contenteditable.find('p'); var pLength = p.length; if(pLength == 1){ // if only one 

exists inside contenteditable var pHtml = p.html(); // if only
is still inside

then prevent // the backspace to delete the

if( pHtml == "
" || pHtml == ""){ e.preventDefault() } } } });

但它不起作用! 如果用户使用Ctrl + A或鼠标一次选择整个文本并按下Backspace键,我还想阻止删除

我也不确定我的方法是否是最佳方法,但我对所有建议持开放态度! 谢谢

更新:

我找到了另一种方法,但仍未完成:

 $(document).on('keyup', '[contenteditable=true]', function(e){ var contenteditable = $(this); if( e.keyCode == 8 ) { if(contenteditable.find('p').length == 0){ contenteditable.html('


'); } } });

在Backspace keydown上我检查在contenteditable中是否存在P元素,如果没有找到元素我在内部添加一个,但仍需要在br之前设置插入符号