[英]jQuery addClass to a child element
我有带有子菜单的导航菜单通常的无序列表。
的HTML:
<ul>
<li><a href="#">Link 1</a></li>
<li>
<a href="#">Link with submenu</a>
<ul>
<li><a href="#">Sublink 1</a></li>
</ul>
</li>
</ul>
父<li>
内部的所有链接都具有边界半径。 但是,如果父<li>
有子<ul>
,则我不希望链接具有半径。
我目前正在使用此jQuery:
<script>
$("li").has("ul").addClass("sub-radius");
</script>
除了针对<li>
之外,它工作正常,但我需要它针对子<a>
并删除其半径。
任何帮助,将不胜感激。
试试这个表达式:
$("li:has(ul) > a").addClass("sub-radius");
编辑:如果您不希望子项具有边框半径,请在查询中删除>
。
您在这里不需要jQuery,您可以仅使用CSS来实现。 只需使用:only-child
伪类:
a:only-child { /* define border-radius here */ }
现场演示: http : //jsfiddle.net/QYaqb/
这应该适用于您的HTML
("li").has("ul").children("a").addClass("sub-radius");
我想你想要.find
:
<script>
$("li:has(ul)").find("a").addClass("sub-radius");
</script>
只需要在li里面找到a的:
$("li").has("ul").find('a').addClass("sub-radius");
这是一个小提琴: http : //jsfiddle.net/cBfMV/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.