如何使用javascript从onclick按钮获取光标放置的元素

如何使用javascript从onclick按钮获取光标放置的元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有HTML5中的contenteditable div。我在DOM中有一个ulli。当我单击该按钮时,我希望使用javascript将光标放置在li中。我该怎么做 点击按钮 DAFDASDSDFASDFD DFSFSDSFSDSFSDSFSDSFSDSFSDSFSDSFDFDSF SDFSDFSFDFSFDFF 功能图标点击(obj){ if($('#editableEvent').getSelection){ console.log($('#editableEvent').getSel

我有HTML5中的contenteditable div。我在DOM中有一个
ulli
。当我单击该按钮时,我希望使用javascript将光标放置在
li
中。我该怎么做

点击按钮
  • DAFDASDSDFASDFD
  • DFSFSDSFSDSFSDSFSDSFSDSFSDSFSDSFDFDSF
  • SDFSDFSFDFSFDFF
功能图标点击(obj){
if($('#editableEvent').getSelection){
console.log($('#editableEvent').getSelection().anchorNode.parentNode);
}
}

通常情况下,我的光标位于“内容可编辑”分区内。单击“按钮”时,我希望光标放置在“li”等元素上。提前谢谢。

单击按钮后在下面添加代码

 document.getElementById("editableEvent ul li").style.cursor = "default";

若要删除单击的LI,可以使用事件的目标属性计算出单击的内容,然后将其删除

普通JS:

document.getElementById('editableEvent').onclick = function(e){
  if(e.target instanceof HTMLLIElement){
    e.target.remove();
  }
}
jQuery:

$('#editableEvent').click(function(e){
  $target = $(e.target);
  if($target.is('li')){
    $target.remove();
  }
});

我只是提供链接,可以帮助你

-在contentEditable文本中查找当前位置

-查找所提到的光标标记

-要删除相应的标签,您还可以尝试:

 $('li').on('click',function(){

        $(this).remove();
    });

单击li时,我在单击按钮后添加了一个类,然后删除了该类元素

  "Li clicked":
           callLiFunction: function (obj){
                $('#editableEvent').find('.liCreated').removeClass('liCreated');
                $(obj).addClass('liCreated');
            }
   "button clicked": 
           funcCallDel : function() {
             $('#editableEvent').find('.liCreated').remove();
           }

谢谢大家的建议。

这只是在元素上设置了光标的样式,它不会将光标放在任何地方。我只是尝试了一下,我不知道。这对动态创建的
  • 不起作用,例如,如果
    li
    是使用可编辑的内容通过复制和粘贴添加的。是的,正确,对于该问题,使用$('body')。on('click','li',function(){});并在函数write$(this.remove())中写入;或者,最好在
    #editableEvent
    而不是body上侦听单击事件,因为这不是body的关系。是的,如果div是静态的,那么我们可以使用#editableEvent代替body。我只是给出一个通用的解决方案。