.slice 和 .wrapall
我正在使用 stackoverflow 上的一位成员建议的一些代码,并由我进行修改,将每 3 个列表项包装为大型菜单的一部分。代码是:
var lis = $("ul > li");
for(var i = 0; i < ls.length; i+=3) {
lis.slice(i, i+3).wrapAll("<div class='new'></div>");
}
不幸的是,这将从下一个父菜单中获取子 li,以填充 div 中 3 li 的“配额”。这当然严重扰乱了我的菜单。 例如,请访问此处。
有人对我如何解决这个问题有任何建议吗?
I'm using a bit of code suggested by a member on stackoverflow and adapted by me to wrap every 3 list items as part of a mega menu. The code is:
var lis = $("ul > li");
for(var i = 0; i < ls.length; i+=3) {
lis.slice(i, i+3).wrapAll("<div class='new'></div>");
}
Unfortunately this will grab child li's from the next parent menu to fill up the 'quota' of 3 li's in a div. This is of course massively messing up my menus. For an example please visit here.
Does anyone have any suggestion how I could fix this up?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你的问题是你的选择器。由于
sizzle
从右到左工作,因此它只会查询所有以UL 元素
作为直接父元素的LI 元素
(通常始终是案件)。因此,请分隔您的
UL
。Your problem is your selector. Since
sizzle
works right to left, it will just query allLI elements
which have anUL element
as direct parent (which usually, is always the case).So, seperate your
ULs
.您是否尝试过使用类作为 ht 选择器来应用它?
但如果你不知道,我警告你,你正在破坏 dom.. 你把 div 放在 ul 上,这是不好的..;)
have you tried applying it withe the use of the class as ht selector like this?
But if you did not know, I'm warning you that you are breaking the dom.. you are putting div on ul which is not good.. ;)