我在点击菜单上做了一个简单的下拉列表,似乎无法解决如何停止影响子链接的脚本。
$('#sidebarLeft li.page_item').each(function(){
if ( $(this).children().length > 0 ) {
$('a', this).attr('href','#');
}
});
父母正确地将其链接擦除但是它不会停留在父母身上。有什么想法吗?
先谢谢,Dan
这适用于Wordpress wp_list_pages()
,它会显示所有帖子类别及其相关的永久链接。
这个想法是为了防止父永久链接有任何href
,所以我能想到的最好的方法就是将永久链接换成'#'
答案 0 :(得分:3)
检查
$('#sidebarLeft li.page_item').each(function(){
if ( $(this).children('ul.children').length) {
$(this).children('a').attr('href','#');
}
});
演示:Fiddle
或更好
$('#sidebarLeft li.page_item:has(> ul.children)').each(function(){
$(this).children('a').attr('href','#');
});
演示:Fiddle
答案 1 :(得分:1)
您只需要将选择器更改为仅选择带子项的元素。假设相关的孩子更多li
s,你可以使用:
$('#sidebarLeft li.page_item:has(>li)').each(function(){
$(this).removeAttr('href');
});
答案 2 :(得分:1)
$('#sidebarLeft> li.page_item') 听起来你可能需要一个限制性更强的选择器。
答案 3 :(得分:1)
$('#sidebarLeft li.page_item a').not('ul li ul a').attr('href','#');
这是使用background-color演示的fiddle。