Jquery关闭div和ul标记并重新打开新的
我有这个HTMLJquery关闭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> <
<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谢谢您的澄清。事实上,我是新手。