【发布时间】:2021-06-28 20:42:43
【问题描述】:
我已经开始设计这个菜单,并意识到它被认为比预期的更具挑战性。我正在尝试获取每个子菜单的总项目数 - 下面是我的子菜单结构之一的 html 示例。如果我把它们都包括在内,那就太长了。
在导航菜单上,我想在右侧子菜单旁边显示计数(见图)。目前我通过 css “.accordion-item::before { content: "x" }" 有一个 "x"。理想情况下,我希望保持这种方式,希望我可以将计数作为伪元素。
HTML:
<ul id="navigation" class="drawer-navigation">
<li id="menu-item-" class="menu-item menu-item-parent">
<a class="accordion-item" href="https://www.google.com/">Photography</a>
<ul class="submenu">
<li id="submenu-item-" class="submenu-item">
<a href="www.google.com">Weddings</a>
</li>
<li id="submenu-item-" class="submenu-item">
<a href="www.google.com">Engagements</a>
</li>
<li id="submenu-item-" class="submenu-item">
<a href="www.google.com">Anniversaries</a>
</li>
<li id="submenu-item-" class="submenu-item">
<a href="www.google.com">Collaborations</a>
</li>
<li id="submenu-item-" class="submenu-item">
<a href="www.google.com">Lookbooks</a>
</li>
<li id="submenu-item-" class="submenu-item">
<a href="www.google.com">Family</a>
</li>
<li id="submenu-item-" class="submenu-item">
<a href="www.google.com">Couples</a>
</li>
</ul>
</li>
</ul>
CSS:
.menu-sidebar ul.drawer-navigation li.menu-item-parent a:not(ul.submenu li a)::before {
content: "×";
display: inline-block;
positiion: relative;
float: right;
vertical-align: middle;
font-size: 22px;
transform-origin: center;
transform: rotate(-45deg);
transition-propery: transform;
transition-duration: 600ms;
transition-timing-function: cubic-bezier(0.16, 1, 0.19, 1);
}
JS: 目前只获取所有子菜单子菜单的总数。
$(document).ready( function() {
var $countSource = $("#navigation");
$countSource.each( function() {
var $countElements = $("li.menu-item-parent ul").children().length;
console.log($countElements);
});
});
【问题讨论】:
标签: jquery foreach count navigation counting