使用jQuery在悬停时选择父级的兄弟

时间:2011-11-08 19:14:01

标签: jquery jquery-selectors

我正在尝试更改.target的父级兄弟.hover的css。似乎无法使这段代码工作 - 我不确定我的函数开头是否需要$(this),或$('。target')...我认为它可能是.target因为那个正是我用.css()改变了css。

<script type="text/javascript">
$(document).ready(function() {
    $('.hover').hover(
        function(){
            $(this).parent().siblings('.target').css('display', 'inline');
        },
        function(){
            $(this).parent().siblings('.target').css('display', 'none');
        }
    );
});
</script>

这是我的预感(也不起作用):

$('.target').parent(this).sibling().css('display', 'inline');

这是html

<div class="target" style="display: none;">
</div>
<div>
    <span class="hover">Hover</span>
</div>

EDIT ----------------- 当spanclass="hover"时,它似乎无效。

EDIT numero dos -------------------- 我的<span>父母似乎很深,需要.parent().parent()谢谢。

3 个答案:

答案 0 :(得分:8)

假设您的HTML符合您的预期,并且没有看到它我无法评论改进,这应该有效:

$('.target').parent().siblings('.target').css('display', 'inline');

或者,如果.target元素是下一个兄弟:

$('.target').parent().next('.target').css('display', 'inline');

或者,如果之前的兄弟姐妹(以及你发布的的html 以前的兄弟姐妹):

$('.target').parent().prev('.target').css('display', 'inline');

参考文献:

答案 1 :(得分:5)

安迪 检查这个小提琴,你似乎在你发布的第一个样本中有正确的代码。如果您可以发布您的HTML,我们可能会有更好的时间帮助您。 http://jsfiddle.net/nKtzB/3/

答案 2 :(得分:0)

如果您尝试对该块执行某些操作,请尝试使用display:block

您的代码仍然正常,请参阅:http://jsfiddle.net/Mx4ks/1/


还有其他一些问题。尝试粘贴你的HTML:)

在此处查看您自己的代码:http://jsfiddle.net/Mx4ks/