[英]JavaScript; How do I declare a variable global?
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>
你已經在函數范圍內聲明了qq。 一旦該功能退出,qq就不再存在了。
如果你想獲得qq的警報,你需要在函數之外聲明它。 請記住,它只包含分配給它的最后一個值。
var qq;
$('li').each(function(index) {
qq=$(this).text();
alert(index + ': ' + qq);
});
alert(qq); // Will alert 'bar'
布蘭登的答案在解釋原因時是正確的。 相反,如果你想知道在調用each()之后如何使它可以訪問,你可能想要這樣的東西:
var qq;
$('li').each(function(index) {
qq = $(this).text();
alert(index + ': ' + qq);
});
alert(qq);
這使得qq成為全局范圍變量,您可以為每次循環中的值重新分配值。 在循環結束時,變量將保留分配給它的最后一個值(在您的示例中為bar)。
它應該像這樣重寫:
<script>
var qq;
$('li').each(function(index) {
qq=$(this).text();
alert(index + ': ' + qq);
});
alert(qq);
;
請注意,qq將僅包含最后一個值,因為每次循環遍歷li時都會重新分配它。
它沒有工作,因為你在一個匿名函數中聲明了qq變量,所以它不存在於它之外。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.