让我们说这是我们的功能:
$('ul li').bind('click', function(){
$('iframe').each(function(){
// who is this???
alert(this);
});
});
如你所见,有一个.each()句子在里面使用$(this)
,
$(this)
将引用哪个元素? ul li
?还是iframe
?正如你猜测的那样,我正在尝试选择每个iframe(在网页中,与ul li无关,那里)
我问这个是因为我用一个更大的函数得到意想不到的结果,
答案 0 :(得分:1)
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文档。
您可能想告诉我们预期的结果,并在此处发布整个代码。
答案 1 :(得分:1)
它指的是iframe你可以从这里http://jsfiddle.net/x2XyU/1/
检查它答案 2 :(得分:1)
this
指的是最具体的函数范围的对象。
$('ul li').bind('click', function(){
// this = [ul li]
$('iframe').each(function(){
// this = [iframe]
});
});
如果要从ul li
内部函数中引用this
版本的iframe
,则必须在其周围形成一个闭包,如下所示:
$('ul li').bind('click', function () {
// cache this
var that = this;
$('iframe').each(function () {
// here, this = [iframe] and
// that = [ul li]
});
});