javascript - jQuery如何获取父元素的兄弟元素

标签 javascript jquery html twitter-bootstrap-3

今天,当我将鼠标悬停在不同的元素上时,我试图触发特定元素的工具提示。我在 jQuery 方面没有那么丰富的经验,但我最终通过文档阅读了它。后来看了看我是怎么引用target元素的,好像真的很绕。我想知道是否有更好的方法可以产生相同的结果。

我正在使用的 HTML 如下:

<div class="item">
    <h3 class="level-title">ITEM 1
        <span class="level-label" data-toggle="tooltip" data-placement="top" data-animation="true" title="Tooltip text that pops up">Title Text
        </span>
    </h3>
    <div class="level-bar">
        <div class="level-bar-inner" data-level="70%">
        </div>                                      
    </div>
</div>

<div class="item">
    <h3 class="level-title">ITEM 2
        <span class="level-label" data-toggle="tooltip" data-placement="top" data-animation="true" title="Tooltip text that pops up">Title Text
        </span>
    </h3>
    <div class="level-bar">
        <div class="level-bar-inner" data-level="70%">
        </div>                                      
    </div>
</div>

在我的 HTML 文件中,我有 5 个左右的项目部分。我想要的是工具提示不仅在观众将鼠标悬停在“标题文本”上时触发,而且在他们将鼠标悬停在“level-bar-inner”div 上时触发。为了实现这一目标,我提出了以下 JavaScript:

jQuery(document).ready(function($) {
...
    $('.level-bar-inner').hover(
        function(e) {
            $($($(e.target).parent().siblings()[0]).children()[0]).tooltip('show');
        },
        function(e) {
            $($($(e.target).parent().siblings()[0]).children()[0]).tooltip('hide');
        }
    );
...
});

这似乎是一个草率的解决方案,但却是一个合理的解决方案。这种方法取决于只有一个 sibling 和一个 child ,幸运的是,在我的情况下,我的 HTML 文件中的所有“项目”部分都是如此。这让我问是否有更好/更有效的方法来检索这个元素,或者甚至只是切换它的一般工具提示。

最佳答案

您可以使用 this 关键字引用引发事件的元素。您还可以使用 jQuery 的 DOM 遍历方法,而不是重复从 jQuery 对象中获取 DOMElement,然后再将其返回到 jQuery 对象中。试试这个:

$('.level-bar-inner').hover(function(e) {
    $(this).parent().prev().find('span').tooltip('show');
}, function(e) {
    $(this).parent().prev().find('span').tooltip('hide');
});

关于javascript - jQuery如何获取父元素的兄弟元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31377020/

相关文章:

javascript - 嵌套状态的多个 View

javascript - 这段 JavaScript 代码可以用 jQuery 重写吗?

html - 将此 div 宽度设置为 1px 时遇到问题?

html - float div 未正确换行

JavaScript -- 使用 UTC 偏移获取当前日期

javascript - 为什么 google 代码美化器拒绝与 XSLT 一起使用?

javascript - 从 Google Feed API 同时绘制多个 Fe​​ed

javascript - 检查每个 p 标签 jQuery 的字符长度

javascript - Rails 如何制作过滤链接

javascript - 关于html中的 "paragraph sliding"