function() 和 $(this) 中的each()

发布于 2024-12-08 22:05:27 字数 404 浏览 1 评论 0原文

假设这是我们的函数:

$('ul li').bind('click', function(){

   $('iframe').each(function(){
        // who is this???
        alert(this);
   });

});

正如你所看到的,有一个 .each() 语句在里面使用 $(this)

$(this)< 将引用什么元素/代码> ??? ul li?或iframe?正如你可以猜到的那样,我正在尝试选择每个 iframe(在网页中,与 ul li 无关)

我问这个是因为我通过更大的函数得到了意想不到的结果,

Lets say this is our function:

$('ul li').bind('click', function(){

   $('iframe').each(function(){
        // who is this???
        alert(this);
   });

});

As you can see, there is an .each() sentence that is using $(this) inside,

What element will be referenced by $(this) ??? ul li? or iframe? I'm trying, as you can guess, to select each iframe (in the webpage, nothin to do with ul li, there)

I ask this because i am getting unexpected results with a way larger function,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

故笙诉离歌 2024-12-15 22:05:27

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]

    });
});

this refers to the object of the most specific function scope.

$('ul li').bind('click', function(){

    // this = [ul li]

    $('iframe').each(function(){

        // this = [iframe]

    });
});

If you want to reference the the ul li version of this from inside the iframe inner function, you would have to form a closure around it, like the following:

$('ul li').bind('click', function () {
    // cache this
    var that = this;

    $('iframe').each(function () {

        // here, this = [iframe] and
        //       that = [ul li]

    });
});
救赎№ 2024-12-15 22:05:27

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: bar

this 将引用 iframe 对象。
上面的代码取自 jQuery 文档。

您可能想告诉我们预期的结果是什么,也许还可以在此处发布整个代码。

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

HTML:

<ul>
    <li>foo</li>
    <li>bar</li>
  </ul>

Javascript:

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

Alert output:

0: foo

1: bar

this will refer to the iframe objects.
The above code is taken from the jQuery documentation.

You might want to tell us what the expected results, and maybe post the whole code here.

千纸鹤 2024-12-15 22:05:27

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

It refers to iframe u can check it from here http://jsfiddle.net/x2XyU/1/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文