在下面的代码中如何选择“title”类,但如果“subnav”类存在?
<ul class="flexMenu-popup">
<li>
<a href="x" class="title">
</a>
<ul class="subnav">
</ul>
</li>
</ul>
答案 0 :(得分:1)
使用相邻的选择器(〜和+),只能选择跟随元素的兄弟姐妹。这意味着您可以选择a
之后的ul
,反之亦然。
请参阅下面的代码段:
ul {
border: 1px solid black;
list-style-type: none;
}
.flexMenu-popup li > ul ~ a {
color: red;
}
&#13;
<ul class="flexMenu-popup">
<li>
<a href="#">a tag</a>
<ul>
ul tag
<li>
<a href="#">a tag</a>
<ul>ul tag</ul>
<a href="#">a tag</a>
</li>
</ul>
<a href="#">a tag</a>
</li>
</ul>
&#13;
<强>解决方案强>: 但我认为你所寻找的东西可以通过以下规则的组合来完成:
.flexMenu-popup li > a {
color: red;
}
.flexMenu-popup li > ul ~ a {
color: inherit;
}
请参阅下面的代码段:
ul {
border: 1px solid black;
list-style-type: none;
}
.flexMenu-popup li > a {
color: red;
}
.flexMenu-popup li > ul ~ a {
color: inherit;
}
&#13;
<ul class="flexMenu-popup">
<li>
<a href="#">a tag</a>
<ul>
ul tag
<li>
<a href="#">a tag</a>
<ul>ul tag</ul>
<a href="#">a tag</a>
</li>
</ul>
<a href="#">a tag</a>
</li>
</ul>
&#13;
答案 1 :(得分:1)
我不确定CSS是否可行,但jQuery非常简单:
var $ul = $('a.title', $('ul.flexMenu-popup > li > ul.subnav').parent());
if ($ul.length) {
alert('yes');
}
else {
alert('no');
}