【问题标题】:How to use "this" on inner div from parent如何在父级的内部 div 上使用“this”
【发布时间】:2013-05-31 03:15:54
【问题描述】:

我有一个快速网络程序,当您将鼠标悬停在另一张图片上时,会在下方弹出一个小框。

我这样设置了一个快速函数:

$('.indArtistBox').hover(function(){
    $('.description').show();
});

这个问题是我想知道如何合并this,因为我只想在悬停的.indArtistBox 上显示描述。

我试过$(this).('.description'),但显然没有用。我将如何做到这一点?

【问题讨论】:

    标签: javascript jquery function hover this


    【解决方案1】:

    使用find

    $(this).find(".classOfYourSubObject")./* ... */
    

    【讨论】:

      【解决方案2】:

      您可以将this 设置为选择器的context

      $('.description', this).show();
      

      在内部这是用jQuery的.find()方法实现的,所以相当于:

      $(this).find('.description').show();
      

      如果.description'.indArtistBox 的直接子代,it seems to be faster in most browsers 将使用 jQuery 的 .children() 方法,因为该方法仅在 DOM 树中向下移动一层。

      $(this).children('.description').show();
      

      【讨论】:

      • jQuery 似乎彻底混淆了“上下文”的含义(这就是为什么您的链接指向选择器条目,而不是“上下文”条目的原因)。这里的“上下文”是指将应用选择器的根元素或父元素。文档根本没有解释。
      • @RobG - 我不明白你的意思,在这种情况下,“上下文”不是“周围元素”之类的东西,所以如果你为要应用的选择器指定“上下文”到,您提供的“上下文”是父元素是否没有意义,因为它包含所有周围的元素?此外,该链接指向 jQuery 文档中的确切位置,它显示了如何指定应应用选择器的“上下文”。
      • 上下文一词在不同的地方用于表示不同的事物,例如选择器的“父”元素(在这种情况下),函数的“this”关键字,在“布尔上下文”中(无论是什么意思)等等。在 ECMAScript 中,“上下文”只意味着一件事:执行上下文。 jQuery 对上下文的使用都不符合 ECMAscipt 的含义,因此造成了混淆。请注意,它实际上并没有解释“上下文”对于选择器意味着什么,它只是假设用户会解决它。
      • @RobG - 好的,该链接确实解释了它,您只需向下滚动一点(页面上没有直接提供给该信息的可点击锚点),但查看源代码对于 ID,我可以改为提供 this link。我会更新答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 2015-12-13
      • 1970-01-01
      相关资源
      最近更新 更多