我有菜单(类别列表),level-0 li有class" .cat_cat_h",level-1 .cat_par_c"
HTML:
<ul class="text-links">
<li class="cat_cat_h level-0"><a href="#">Item 1</a></li>
<li class="cat_cat_h level-0"><a href="#">Item 2</a></li>
<li class="cat_cat_h level-0 active"><a href="#">Item 3</a></li>
<li class="cat_par_c level-1" style="display: none;"><a href="#">Item 4</a></li>
<li class="cat_par_c level-1" style="display: none;"><a href="#">Item 5</a></li>
<li class="cat_par_c level-1" style="display: none;"><a href="#">Item 6</a></li>
<li class="cat_cat_h level-0"><a href="#">Item 7</a></li>
<li class="cat_cat_h level-0"><a href="#">Item 8</a></li>
<li class="cat_cat_h level-0"><a href="#">Item 9</a></li>
<li class="cat_cat_h level-0"><a href="#">Item 2</a></li>
<li class="cat_par_c level-1" style="display: none;"><a href="#">Item 7</a></li>
<li class="cat_par_c level-1" style="display: none;"><a href="#">Item 8</a></li>
<li class="cat_par_c level-1" style="display: none;"><a href="#">Item 9</a></li>
</ul>
我想展示()仅在.level-0.active之后的第1级元素(第4项,第5项,第6项)。
更新
最终解决方案:
$(document).ready(function(){
$( ".level-0.active" ).nextUntil( ".level-0" ).show();
});
答案 0 :(得分:1)
描述:对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先来获取与选择器匹配的第一个元素。
这意味着closest()
功能在一个方向上起作用。如果你想转到父<ul>
而回到另一个<li>
,你必须先调用parent()
函数,如下所示:
$(document).ready(function(){
$(".cat_cat_h").parent('ul').find(".cat_par_c").show();
});
编辑后编辑:
如果您想要选择元素的上一个和下一个元素,请尝试:
$(document).ready(function(){
$( ".level-0.active" ).prev().show();
$( ".level-0.active" ).next().show();
});
答案 1 :(得分:1)
为了回应Paulchenkiller,我会扩大我的答案。
流利的任何语言,口语(英语,西班牙语,意大利语,法语,德语等)或书面(html,css,javascript,c ++,pascal,basic等)都需要能够表达某种概念,想法或以各种不同的方式完成任务。
我会尝试用这个特殊的问题来解决这个特殊问题。
jQuery选择器 - 上面已经很好地阐述了这一点,我可能做的唯一一个评论是在加载时间(微秒到毫秒)方面使用jQuery的微不足道的缺点,也许稍长一些运行比本机js(微秒)。
CSS类 - 处理这个问题的一种方法是使用额外的css类 - 添加一个类,比如“li456”,它是一个“空”类,因为它不包含CSS样式,并且只是用于标识特定行或代码行。以FIDDLE为例。从某种意义上讲,它很难跟上代码,因为很多类附加到一行html上,并且需要在该部分甚至附加的样式表中查找其他类。
< / LI> 醇>$(".li456").show();
$("#li4, #li5, #li6").show();
$(".text-links .cat_par_c:lt(3)").show();
的document.getElementById( 'LI4')的style.display = '块'。
的document.getElementById( 'LI5')的style.display = '块'。
。的document.getElementById( 'LI6')的style.display = '块';
document.getElementsByClassName( 'cat_par_c')[n]的.style.display = '块';
$('.cat_par_c:eq(0)').show(); $('.cat_par_c:eq(1)').css('display', 'block'); document.getElementsByClassName('cat_par_c')[2].style.display='block';