Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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
Jquery关闭div和ul标记并重新打开新的_Jquery_Html - Fatal编程技术网

Jquery关闭div和ul标记并重新打开新的

Jquery关闭div和ul标记并重新打开新的,jquery,html,Jquery,Html,我有这个HTML <div class="full"> <ul> <li>Big Menu1 <div class="col"> <ul> <li>menu1</li> <li>menu2</li> <li>menu3</li> <li>menu4</li> <

我有这个HTML

<div class="full">
 <ul>
  <li>Big Menu1
   <div class="col"> 
    <ul>
     <li>menu1</li>
     <li>menu2</li>
     <li>menu3</li>
     <li>menu4</li>  
     <li>menu5</li>
     <li>menu6</li>
     <li>menu7</li>
     <li>menu8</li>                       
   </ul>        
 </li> 
 <li>Big Menu 2</li>   
</div>

  • 大菜单1
    • 菜单1
    • 菜单2
    • 菜单3
    • 菜单4
    • 菜单5
    • 菜单6
    • 菜单7
    • 菜单8
  • 大菜单2
我想创建一个新的html,其中所有三个li都会创建一个带有“col”类的新div和一个新的ul标记,如下所示:

<div class="full">
  <ul>
    <li>Big Menu1
     <div class="col"> 
       <ul>
         <li>menu1</li>
         <li>menu2</li>
         <li>menu3</li>
       </ul>
     </div>
     <div class="col"> 
     <ul>
          <li>menu4</li>  
          <li>menu5</li>
          <li>menu6</li>
     </ul>            
    </div>
    <div class="col"> 
     <ul>
         <li>menu7</li>
         <li>menu8</li>                       
     </ul>
    </div>
   </li>
   <li>Big Menu2</li>
  </ul>
 </div>      

  • 大菜单1
    • 菜单1
    • 菜单2
    • 菜单3
    • 菜单4
    • 菜单5
    • 菜单6
    • 菜单7
    • 菜单8
  • 大菜单2
如何使用jQuery来实现这一点?我刚刚创造了ul,但是
无法创建div。

您可以使用jquery append方法。
$(“#foo”).append(“其他元素”)

您可以按照此方法执行操作

var div = $('.full').append('<div class="col">content</div>');
var ul = $(div).append('<ul> </ul>');
$(ul).append('<li>menu#</li>);
var div=$('.full').append('content');
var ul=$(div.append(“
    ”); $(ul).附加(“
  • 菜单”
  • );
    这还允许您使菜单动态化,以便可以在如下位置设置变量

     var menu = somecontenttoTriggermenu;
     $(ul).append('<li>' +menu+ '</li>');
    
    var菜单=somecontenttoTriggermenu;
    $(ul).追加(“
  • ”+菜单+”
  • );

    或者在一次致命的打击中完成这一切。没有一个动态的方法。这完全取决于它的用途。

    可以使用以下内容:

    $('.full .col').each(function() {
        var $col = $(this);
        var $li = $col.find('ul li:gt(2)');
        for (var i = 0; i < $li.length; i = i + 3) {
          var $newList = $('<ul>').append($li.slice(i, i + 3));
          var $newCol = $('<div>', {
            class: 'col'
          }).append($newList);
          $col.parent().append($newCol);
        }
    });
    
    
    
    • 大菜单1
      • 菜单1
      • 菜单2
      • 菜单3
      • 菜单4
      • 菜单5
      • 菜单6
      • 菜单7
      • 菜单8
    • 大菜单2

    这是一种JavaScript方法:

    var ul=document.createElement('ul');
    var li=document.createElement('li');
    li.appendChild(document.createTextNode('BigMenu1'))
    ul.儿童(li);
    var c=1;
    对于(i=0;i<3;i++){
    var newDiv=document.createElement('div');
    newDiv.className='col';
    var newUl=document.createElement('ul');
    对于(j=0;j<3;j++){
    如果(i==2&&j==2){
    打破
    }
    newLi=document.createElement('li');
    appendChild(document.createTextNode('menu'+c++));
    newUl.appendChild(newLi);
    }
    新分部附属儿童(新联邦);
    李先生(新部门)
    }
    var lastLi=document.createElement('li');
    appendChild(document.createTextNode('BigMenu2');
    ul.appendChild(lastLi);
    var full=document.createElement('div');
    full.className='full';
    完整的儿童(ul);
    document.body.appendChild(完整)
    
    .col{
    边框:1px纯黑;
    垫面:5px;
    垫底:5px;
    
    }
    您也可以发布javascript代码吗?为什么是否定的?在其他问题中也可能使用相同的概念,因为您的答案实际上并没有回答这个问题,只是给出了一个非常模糊的关于append()函数的用法。应该是一条评论。@j08691谢谢您的澄清。事实上,我是新手。