Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数()和$(this)中的每个()值_Javascript_Jquery_Function_This_Each - Fatal编程技术网

Javascript 函数()和$(this)中的每个()值

Javascript 函数()和$(this)中的每个()值,javascript,jquery,function,this,each,Javascript,Jquery,Function,This,Each,假设这是我们的功能: $('ul li').bind('click', function(){ $('iframe').each(function(){ // who is this??? alert(this); }); }); 如您所见,其中有一个.each()语句使用了$(this) $(this)将引用哪个元素ul li?或iframe?正如你可以猜到的,我正在尝试选择每个iframe(在网页中,与ul li无关,在那里) 我这样问是因为

假设这是我们的功能:

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

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

});
如您所见,其中有一个.each()语句使用了
$(this)

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

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

HTML:

警报输出:

0:foo

1:bar

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


您可能希望告诉我们预期的结果,并可能在此处发布整个代码。

它指的是如果您可以从这里检查它

指的是最具体的功能范围的对象

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

    // this = [ul li]

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

        // this = [iframe]

    });
});
如果要从
iframe
内部函数中引用
ul li
版本的
this
,必须在其周围形成一个闭包,如下所示:

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

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

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

    });
});

毫无疑问,这将是一个iframe。你能更具体地描述一下“大函数”和这些“意外结果”吗?情况不一样,因为这里的。每个都不在一个function@ToniMichelCaubet是一样的。Kemal提供的链接显示了在
点击
处理程序中运行
每个
的示例,就像你的问题一样。哈哈,这很快就证明了!但看看这个为什么是未定义的?不应该是
  • ?哈哈哈,你不知道如何使用标记名检查此项以避免混淆,你可能想使用
    var that
    (或
    $that
    用于jQ)。
    $('ul li').bind('click', function(){
    
        // this = [ul li]
    
        $('iframe').each(function(){
    
            // this = [iframe]
    
        });
    });
    
    $('ul li').bind('click', function () {
        // cache this
        var that = this;
    
        $('iframe').each(function () {
    
            // here, this = [iframe] and
            //       that = [ul li]
    
        });
    });