http://jsfiddle.net/borayeris/6kvyb/
<ul>
<li>foo</li>
<li>bar</li>
</ul>
<script>
$('li').each(function(index) {
var qq=$(this).text();
alert(index + ': ' + qq);
});
alert(qq);// Asking this one.
</script>
答案 0 :(得分:15)
你已经在函数范围内声明了qq。一旦该函数退出,qq就不再存在。
如果你想获得qq的警报,你需要在函数之外声明它。请记住,它只包含分配给它的最后一个值。
var qq;
$('li').each(function(index) {
qq=$(this).text();
alert(index + ': ' + qq);
});
alert(qq); // Will alert 'bar'
答案 1 :(得分:3)
var qq;
$('li').each(function(index) {
qq = $(this).text();
alert(index + ': ' + qq);
});
alert(qq);
这使得qq成为全局范围变量,您可以为每次循环中的值重新分配值。在循环结束时,变量将保留分配给它的最后一个值(在您的示例中为bar)。
答案 2 :(得分:0)
应该像这样重写:
<script>
var qq;
$('li').each(function(index) {
qq=$(this).text();
alert(index + ': ' + qq);
});
alert(qq);
请注意,qq将只包含自每次循环播放li时重新分配的最后一个值。
它没有用,因为你在一个匿名函数中声明了qq变量,所以它不存在于它之外。