each() inside function() and $(this)

each() inside function() and $(this)

本文关键字:this and inside each function      更新时间:2023-09-26

假设这是我们的函数:

$('ul li').bind('click', function(){
   $('iframe').each(function(){
        // who is this???
        alert(this);
   });
});

可以看到,有一个。each()句子里面使用了$(this)

$(this)将引用什么元素??ul li吗?还是iframe ?我正在尝试,你可以猜到,选择每个iframe(在网页中,与ul无关,那里)

我问这个,因为我得到意想不到的结果与一个更大的函数,

this指的是最具体的函数作用域的对象。

$('ul li').bind('click', function(){
    // this = [ul li]
    $('iframe').each(function(){
        // this = [iframe]
    });
});

如果你想从iframe内部函数中引用thisul li版本,你必须在它周围形成一个闭包,如下所示:

$('ul li').bind('click', function () {
    // cache this
    var that = this;
    $('iframe').each(function () {
        // here, this = [iframe] and
        //       that = [ul li]
    });
});

http://api.jquery.com/each/

HTML:

<ul>
    <li>foo</li>
    <li>bar</li>
  </ul>
Javascript:

   $('li').each(function(index) {
        alert(index + ': ' + $(this).text());
      });

警报输出:

0: foo

<

1:酒吧/strong>

this将引用iframe对象。以上代码摘自jQuery文档。

你可能想告诉我们预期的结果是什么,也许在这里发布整个代码。

它指的是iframe,你可以从这里查看http://jsfiddle.net/x2XyU/1/