2013-06-05 164 views
18

這是我試圖完成的簡化版本,但我想傳遞一個變量超出函數範圍。我在函數之外聲明變量但不能得到它。訪問變量功能範圍外

HTML:

<p>5</p> 
<p>6</p> 
<p>7</p> 

JS:

$(document).ready(function() { 
    var gsd = ""; 
    $("p").each(function() { 
     if ($(this).text() === "5") { 
      var gsd = $(this).text(); 
      alert(gsd); // this works 
     } 
    }) 
    alert("get var outside func" + gsd); //does not work 
}); 
+0

是的,我看到它,但是,伊戈爾的回答以下關於「重新聲明」的函數內部變量是切中要害。 – user2232681

回答

25

你重新聲明gsd爲自己的函數中一個新的變量。在gsd之前刪除var函數內部地址gsd在外部範圍內。

+0

謝謝。簡單直接的答案。我現在知道了。 – user2232681

+1

'gsd'不是全球... – Ian

+0

@Ian - 右邊,「全局」應當「在外部範圍」 – Igor