简单的jQuery问题,嵌套的选择器和父级

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单的jQuery问题,嵌套的选择器和父级相关的知识,希望对你有一定的参考价值。

我想悬停一个图像并弹出一个div,没有插件。只是基本的jquery jQuery是这样的:

<script type="text/javascript">
$(document).ready(function() {
    $(".wrapperfortooltip div img").hover(
        function() {
            $(this).css('border', 'solid 1px #E90E65');
            $("div", this).stop().fadeIn();
        },
        function() {
            $(this).css('border', '1px solid #3E3D3D');
            $("div",this).stop().fadeOut();
        }
    );
});
</script>

html是这样的:

<div class="wrapperfortooltip">
    <div style="position:relative;">
        <img src="images/question.gif" alt="Tooltip" style="border: 1px solid #3E3D3D;" />
        <div class="tooltipVzw" style="position: absolute; display: none; width: 215px; top: 0px; left: -235px; ">
            Message to display nr one
        </div>
    </div>
    <div style="position:relative;">
        <img src="images/question.gif" alt="Tooltip" style="border: 1px solid #3E3D3D;" />
        <div class="tooltipVzw" style="position: absolute; display: none; width: 215px; top: 0px; left: -235px; ">
            Message to display
        </div>
    </div>
</div>

CSS(可能感兴趣的人)

.tooltipVzw
{
    border: solid 1px #3e3d3d;
    color: #cfc6ca;
    font-size: 11px;
    padding: 9px 9px 9px 9px;
    background-image: url(images/tooltipvzwbg.jpg);
    background-repeat:repeat-x;
    background-color:#1c1c1c;
    text-align:left;
    line-height: 16px;
}

现在我必须找到一种修改方法

$("div", this).stop().fadeIn();

这样的事情:

$(this).parent().("div").stop().fadeIn();

所以我的实际问题是:如何修复上面的行以使其有效。还是我完全错了?

答案

由于div似乎总是在img之后的元素,你可以使用.next()

$(this).next().stop().fadeIn();

或使用过滤器以确保安全:

$(this).next('.tooltipVzw').stop().fadeIn();
另一答案

你可以用

 $(this).next().stop().fadeIn();

这会找到下一个兄弟并显示它。它强烈依赖于DOM结构。更通用的解决方案可能是使用$(this).nextAll('div')...$(this).parent().find('div')...

以上是关于简单的jQuery问题,嵌套的选择器和父级的主要内容,如果未能解决你的问题,请参考以下文章

jQuery使用:DOM操作之查找兄弟元素和父级元素

在 iframe 和父级之间传递 jquery 变量

JQuery选择器——子元素筛选选择器和表单元素选择器

JSS 中的简单选择器和嵌套选择器

在 fragmenStatePagerAdapter 的嵌套片段中,非法状态异常-指定的子级已经有父级

使用 jQuery 和 CSS 选择器选择嵌套元素的共同父/祖先