我正在禁用菜单中的链接并将其转换为手风琴式按钮。 有些链接没有孩子(如果你愿意,可以下载),我希望那些链接保留。
我想用子Div定位每个LI,并改变Li的a = href值 我已经做到了,但我特别不想改变任何Li的a = href值,如果它没有第一个孩子Div。
这是我的代码:
$(window).on("resize", function() {
$(function() {
if ($(window).width() <= 900 & $( 'div.menu-main-menu-container > ul.main-menu > li.menu-item > a' ).attr( 'href' ) != "#") {
$( 'div.menu-main-menu-container > ul.main-menu > li.menu-item > a' ).each(function() {
var old = $(this).attr( 'href' );
$(this).attr( 'data-href', old);
$(this).attr( 'href', '#');
});
} if ($(window).width() > 900 & $( 'div.menu-main-menu-container > ul.main-menu > li.menu-item > a' ).attr( 'href' ) == "#") {
$( 'div.menu-main-menu-container > ul.main-menu > li.menu-item > a' ).each(function() {
var old = $(this).attr( 'data-href' );
$(this).attr( 'href', old);
});
}
});
}).resize();
答案 0 :(得分:0)
你可以这样做:
if ($('li').children().length > 0)
{
//do something
}
或者:
if ($('li').children().length == 0)
{
//do something else
}
此外,您似乎没有循环播放(否则我会建议使用$(this))。确实是选择这些元素的更好方法。你有这么长的选择器字符串(即&#39; div.menu-main-menu-container&gt; ul.main-menu&gt; li.menu-item&gt; a&#39;)你可以减少到一个简单的独特类或id。
答案 1 :(得分:0)
您只能使用jQuery has
方法选择带有子div的li,例如:
$('div.menu-main-menu-container > ul.main-menu > li.menu-item').has('div').children('a').....
答案 2 :(得分:0)
您可以选择li
第一个元素div
,如下所示:
$('li > div:first').each(function(){
$(this).parent('li')
......
});
希望这可以帮助你:)