Javascript 获得额外的';李';在ul

Javascript 获得额外的';李';在ul,javascript,jquery,html,Javascript,Jquery,Html,每次用户点击li时,新的ul应该添加到该li中,基本上希望使用ul创建二叉树 $(“#树”)。在('click','li',function()上{ $(this).append(“list1list2”;) sdfsdf 您必须停止单击事件的传播,即 $('#tree').on('click', 'li', function(e) { e.stopPropagation(); $(this).append('<ul style="display:block;"&

每次用户点击li时,新的ul应该添加到该li中,基本上希望使用ul创建二叉树

$(“#树”)。在('click','li',function()上{
$(this).append(“
  • list1
  • list2
    • ”;)
      
      
      • sdfsdf

      您必须停止单击事件的传播,即

      $('#tree').on('click', 'li', function(e) {
          e.stopPropagation();
          $(this).append('<ul style="display:block;"><li>list1</li><li>list2</li></ul>');     
      });
      
      $('#tree')。在('click','li',函数(e)上{
      e、 停止传播();
      $(此).append(“
      • list1
      • list2
        • ”); });

      您需要使用
      event.stopPropagation()以便不传播父事件。由于在
      li
      中单击
      li
      将触发两次单击事件,因此您需要停止父级的单击事件,并仅触发您已单击的事件

      $(“#树”)。在('click','li',函数(事件){
      event.stopPropagation();
      var ulExist=$(this.find('ul');
      if(ulExist.length==0){
      $(此).append(“
      • list1
      • list2
        • ”); } });
          
          
          • sdfsdf

          请解释原因。。这个解决方案解决了OP的问题有没有办法限制它只添加一次ul?就像每个李应该只有一个ul。在上面的代码中,我能够将多个ul添加到liple中。这里的人真是太棒了。有人能解释为什么它被否决了吗@有没有办法限制它只添加一次ul?就像每个李应该只有一个ul。在上面的代码中,我能够将多个ul添加到li@shefali什么意思?ul>li>ul?而不是ul>li>ul>li>ul>li…?多次单击列表1,它多次添加ul。我想限制它,只允许一个ul每李。这意味着,如果我多次单击列表1,它不应该向单击的列表添加多个ulli@shefali您已接受并勾选了另一个答案。这个答案有用吗?我还根据您的需要对其进行了更新。