我只想在我的.sub-menu
类中定位所有第一个Li元素并应用span元素(插入符号)。我实现了它,但不是我想要的,插入符号类出现在子菜单中的所有li元素上,我尝试了很多脚本的组合,没有任何效果。如果我使用.first()
它只出现在子菜单中不包含一个子元素的li元素上。所以如果你有1个li元素要删除,它就会赢得' t出现在它上面...对于那个头脑风暴我很希望你能理解我。This就是mu菜单现在的样子。用这段代码:
$('.menu-new ul li:has(sub-menu)')
$('ul.sub-menu').parent('li').append('<span class=pc-caret></span');
&#13;
<div class="menu-new">
<nav class="menu" role="navigation">
<ul class="menu ul">
<span class="pc-caret"></span>
<?php wp_nav_menu(array (
'theme_location'=> 'new-menu',
'container' => '',
'items_wrap' => '%3$s'
)); ?>
</ul>
</nav>
</div>
&#13;
答案 0 :(得分:2)
你可以使用CSS,不需要jQuery。
ul.sub-menu li:first-child{
/* Insert your Caret Styles here, instead of the span*/
}
答案 1 :(得分:1)
试试这个,你应该找到子菜单的第一个li并检查它是否是第一个? 使用:eq(n)其中n是你的索引。索引从0开始。
//as you have more than one ul with sub-menu class this should work for you
$('ul.sub-menu').each(function(){
$(this).find('li'):eq(0).append('<span class=pc-caret></span');
});
答案 2 :(得分:1)
试试这个......
/*
$('ul.sub-menu').each(function(i, elmt){
$('li:eq(0)', elmt).append('<span class="pc-caret">span</span>');
});
*/
//$('ul.sub-menu').eq(0).prepend('<span class="pc-caret">span</span>');
$('ul.sub-menu').each(function(i, elmt){
$(elmt).prepend('<span class="pc-caret">span</span>');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="sub-menu">
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
<ul class="sub-menu">
<li>item 11</li>
<li>item 21</li>
<li>item 31</li>
</ul>
<ul class="sub-menu">
<li>item 12</li>
</ul>
&#13;
答案 3 :(得分:-1)
var subclass = $('.menu-new ul li').attr('class');
if(subclass=='sub-menu'){
$(".sub-menu ul li:first-child").append('<span class=pc-caret></span');
}