jQuery不使用“$(this)”返回必需的元素

jquery not returning required element using '$(this)'

本文关键字:返回 元素 this jQuery      更新时间:2023-09-26

下面的$(this)似乎没有返回$('.element')。知道为什么吗?

$('.element').popover({
  container: $(this)
})

这是因为弹出框不是一个事件函数,而是一个将某些属性应用于对象的函数。

但是,您可以使用每个元素来迭代每个元素:

$('.element').each(function(i, obj) {
   obj.popover({
      container: obj
   });
});

正如其他人所指出的,这种情况的上下文并不像你预期的那样。也许尝试遍历所有元素。

$('.element').each(function() {
    $(this).popover({
        container: $(this)
    });
});

在每个函数的作用域内,$(this) 将引用具有该类的所有元素列表中的特定 $('.element')。

在这个特定的上下文中,this将引用碰巧是外部作用域的任何内容。它可以是window对象,也可以是某个包含函数。

您的代码等效于以下内容:

var obj = {container: $(this)}; // <-- this is defined in outer scope
$('.element').popover(obj);