Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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 如何删除嵌套的UL元素但保留子元素_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何删除嵌套的UL元素但保留子元素

Javascript 如何删除嵌套的UL元素但保留子元素,javascript,jquery,html,Javascript,Jquery,Html,我希望删除嵌套列表的标记,然后将其子元素添加到父元素。例如: <ul> <li>Item 1</li> <ul> <li>Item 2</li> </ul> <li>Item 3</li> </ul> 非常感谢任何帮助。使用 或 试一试 如果你需要它为…工作。。多层次深入。。比如说 <ul class="outer">

我希望删除嵌套列表的
    标记,然后将其子
  • 元素添加到父
      元素。例如:

      <ul>
          <li>Item 1</li>
          <ul>
              <li>Item 2</li>
          </ul>
          <li>Item 3</li>
      </ul>
      
      非常感谢任何帮助。

      使用

      试一试

      如果你需要它为…工作。。多层次深入。。比如说

      <ul class="outer">
      <li>Item 1</li>
      <ul>
          <li>Item 2</li>
          <ul>
              <li>Item 2</li>
          </ul>
      </ul>
      <li>Item 3</li>
      </ul>
      
      • 项目1
        • 项目2
          • 项目2
      • 项目3

      您的原始列表HTML无效,您的jQuery似乎有一些括号问题。我没有添加和标记,因为它们不相关。我还在这里手工输入了jQuery,这就是为什么我漏掉了一个括号,现在已经更正了。@user1570775他们不是说缺少
      标记,而是说
      元素不能是
      元素的直接子元素;无效HTML应该是
        ..
      ,我的意思是您发布的代码无效,而不是缺少一个完整的HTML示例。您不能将一个
          作为另一个
          的直接子级。如果您在Word2003中创建一个缩进列表,然后将其复制/粘贴到tinyMCE中,这就是它的表示方式。对于给定的示例,任何ul元素上都没有适用的类,但该问题可能发生的级别不一致,对不起,我应该说得更清楚些。
           $content.find('ul').each(function() {
          if ($(this).parent().is('li')) {
            var elements = $(this).children().detach();
            var closest = $(this).closest('li');
            $(this).remove();
            elements.appendTo(closest);
          }
          }
          
          $('ul > ul > li').unwrap('ul');
          
          var elements = [];
          $('ul.outer li').each(function(){
              elements.push(this); 
          });
          $('ul.outer').html('');
          for(x in elements){
              $('ul.outer').append($(elements[x])[0].outerHTML);
          }
          
          <ul class="outer">
          <li>Item 1</li>
          <ul>
              <li>Item 2</li>
              <ul>
                  <li>Item 2</li>
              </ul>
          </ul>
          <li>Item 3</li>
          </ul>