繁体   English   中英

jQuery addClass到子元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM