我有CMS生成的菜单,其HTML输出如下:
<ul id="category-nav">
<li>
<a href="google.com" title=""> Top-level with Sub-Menu </a>
<ul>
<li>
<a href="google.com" title=""> Google 2 </a>
</li>
<li>
<li>
<a href="google.com" title=""> Google 3 </a>
</li>
<li>
<li>
<a href="google.com" title=""> Google 4 </a>
</li>
<li>
</ul>
</li>
<li>
<a href="google.com" title=""> Top-level w/out submenu </a>
</li></ul>
我正在尝试使用以下命令创建一个带有jQuery的手风琴样式菜单:
$('#category-nav > li > a').click(function(){
if ($(this).attr('class') != 'selected'){
$('#category-nav li ul').slideUp();
$(this).next().slideToggle();
$('#category-nav li a').removeClass('selected');
$(this).addClass('selected');
}
});
这很好,但是,我正在尝试使用带有'#'的子菜单替换顶级类别中的超链接引用,同时使用jQuery保留顶级类别w / out子菜单超链接引用。
我一直在尝试不同的变体:
$("#category-nav li > a > ul").parent().attr('href', '#')
没有成功。任何帮助将不胜感激!
谢谢!
答案 0 :(得分:0)
$('#category-nav > li:has(ul) > a').attr('href', '#');
或者由于在选择器中不使用非css语法而可能更快:
$('#category-nav > li').has('ul').children('a').attr('href', '#');