jquery的css选择器帮助
我有一个wordpress博客,它有很多页面和子页面,这些子页面可以在悬停状态下下拉。。。。问题是,我不想让你悬停的页面链接到任何东西,除非它们没有任何ul,里面有许多锚,所以只有子页面会有一个不同于“#”的href 所以基本上我用一些简单的javascript来破解这个问题jquery的css选择器帮助,jquery,css,Jquery,Css,我有一个wordpress博客,它有很多页面和子页面,这些子页面可以在悬停状态下下拉。。。。问题是,我不想让你悬停的页面链接到任何东西,除非它们没有任何ul,里面有许多锚,所以只有子页面会有一个不同于“#”的href 所以基本上我用一些简单的javascript来破解这个问题 jQuery(document).ready(function(){ jQuery("#menus li > a").attr("href","#"); }); 这是选择每一个。。我不想那样。。。我只
jQuery(document).ready(function(){
jQuery("#menus li > a").attr("href","#");
});
这是选择每一个。。我不想那样。。。我只希望锚是主页,而不是子页面。。。这是html,也许你可以想一个更好的方法来选择它
我先解释一下
结构是
一个包含许多li的ul,其中包含一个锚
如果li内部也有ul,那么这些子页面将出现在悬停中。
因此,初始锚点应具有href=“#”
如果li中没有ul,则li a应保留其href
<ul id="menus">
<li>
<a href="somelink">Main Page</a> //href should be changed to #
<ul>
<li>
<a href="somelink2/">Subpage1</a>
</li>
<li>
<a href="somelink3">Subpage2</a>
</li>
</ul>
</li>
<li>
<a href="somelink">MainPage-with-no-subpages</a> //href should not be changed
</li>
<li>
<a href="somelink4">MainPage</a> //href should be changed to #
<ul>
<li>
<a href="somelink5">Subpage</a>
</li>
<li>
<a href="somelink6">Subpage</a>
</li>
</ul>
</li>
</ul>
-
//href应改为#
-
-
-
//href不应更改
-
//href应改为#
-
-
试试看
这应该满足您的要求:
jQuery(document).ready(function(){
jQuery("#menus li:has(ul) > a").attr("href","#");
}
不管我在回答中说了什么。我没有正确理解你的问题。Reigel是绝对正确的。`如果li中没有ul,那么li a应该保留其href。
,因此,我的方法是找到ul。。。然后更改
的href。。。如果没有ul,
`的href保持不变…使用非标准选择器,如:not
,:has
,等等。。。很慢。。。尽量不要使用它们……我知道会有开销,但我觉得这并不比像其他答案一样上下遍历DOM慢多少?如果我错了,请纠正我。。。
jQuery(document).ready(function(){
jQuery("#menus li:has(ul) > a").attr("href","#");
}