$(document).ready(function() {
$(".lvl_0 ul").mouseover(function() {
$(".subnav:parent > a span").addClass("subOpen");
});
$(".lvl_0 ul").mouseout(function() {
$(".subnav:parent > a span").addClass("subOpen");
});
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="tile_nav">
<li class="lvl_0">
<a href="#">Tile
<span>---</span>
</a>
<ul class="subnav">
<li><a href="#">XXXXX <span>---</span></a>
</li>
<li><a href="#">XXXXX <span>---</span></a>
</li>
</ul>
</li>
<li class="lvl_0"><a href="#">Tile</a>
</li>
<li class="lvl_0"><a href="#">Tile</a>
</li>
</ul>
&#13;
请帮忙,为什么这个:parent
选择器不与直接孩子合作。将鼠标悬停在子<ul>
上时,应该将一个类添加到父<span>
的{{1}}
答案 0 :(得分:1)
使用parent()
获取父元素:
logstash agent -f D:/cloud/logstash-1.4.2/tc-log.conf -l D:/cloud/logstash-1.4.2/logs/lslog.log –verbose
您也可以使用hover
$(document).ready(function () {
$(".lvl_0 ul").mouseover(function () {
$(this).parent().children('a').addClass("subOpen");
});
$(".lvl_0 ul").mouseout(function () {
$(this).parent().children('a').addClass("subOpen");
});
});
答案 1 :(得分:1)
To select parent in jquery you can use parent(), parents(), closest(). In which way you may like.
$(document).ready(function () {
$(".lvl_0 ul").mouseover(function () {
$(this).parent().children('a').find('span').addClass("subOpen");
});
$(".lvl_0 ul").mouseout(function () {
$(this).parent().children('a').find('span').addClass("subOpen");
});
});
答案 2 :(得分:1)
为什么您的代码不起作用
<强> :parent 强>
选择至少有一个子节点(元素或文本)的所有元素。
您需要父元素和带有子节点的元素。
因此,请使用.closest()
或.parent()
$(' > a span',$('.subnav').closest('ul')).addClass("subOpen");
答案 3 :(得分:0)
在您的情况下,您正在寻找ul
元素的先前兄弟,也使用hover / mouseenter-mouseleave事件
$(document).ready(function () {
$(".lvl_0 ul").hover(function () {
$(this).prev('a').find('span').addClass("subOpen");
}, function () {
$(this).prev('a').find('span').removeClass("subOpen");
});
});
答案 4 :(得分:0)
您需要使用jQuery parent method选择当前元素的父元素 试试这个fiddle
$(this).parent().addClass("subOpen");