2013-06-05 9 views
18

To jest uproszczona wersja tego, co próbuję wykonać, ale chcę przekazać zmienną poza zakresem funkcji. Deklaruję zmienną poza funkcją, ale nie mogę jej uzyskać.Dostęp do zmiennej poza zakresem funkcji

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

Tak, widzę, że jest to jednak odpowiedź Igora poniżej na temat "redeclaring" zmienna wewnątrz funkcji była słuszna do punktu. – user2232681

Odpowiedz

25

Ty redeclare gsd jako nowej zmiennej wewnątrz swojej funkcji. Usuń var przed gsd wewnątrz funkcji adres gsd w zewnętrznym zakresie.

+0

Dziękuję. Prosta, prosta odpowiedź. Teraz rozumiem. – user2232681

+1

'gsd' nie jest globalny ... – Ian

+0

@Ian - prawy," globalny "powinien być" w zewnętrznym zasięgu " – Igor