2011-02-09 125 views

回答

15

你声明的功能范围内的qq。一旦该函数退出,qq不再存在。

如果你想有一个qq的警报,你需要声明它的功能之外。请记住,它将只包含分配给它的最后一个值。

var qq; 

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

alert(qq); // Will alert 'bar' 
+0

我该怎么做才能执行此功能?在PHP中,我可以使用全局使用它的功能,但在JS我不知道。 – borayeris 2011-02-09 18:34:57

3

布兰登的答案在解释原因时是正确的。相反,如果你想知道你怎么能让它调用每()之后访问,你可能想是这样的:

var qq; 

$('li').each(function(index) { 
    qq = $(this).text(); 

    alert(index + ': ' + qq); 
    }); 


alert(qq); 

这使得QQ全局范围的变量,你将重新分配每次通过循环的值。在循环结束时,变量将保留分配给它的最后一个值(在示例中为bar)。

0

应该改写这样的:

<script> 
var qq; 
$('li').each(function(index) { 
qq=$(this).text(); 
alert(index + ': ' + qq); 
}); 
alert(qq); 

;

请注意,qq将只包含最后一个值,因为每次循环li时都会重新分配它。

由于您在匿名函数中声明了qq变量,因此它不工作,所以它不在其外部。