访问函数范围外的变量

use*_*681 24 javascript variables scope function

这是我想要完成的简化版本,但我想在函数范围之外传递一个变量.我在函数外声明变量但无法得到它.

HTML:

<p>5</p>
<p>6</p>
<p>7</p>
Run Code Online (Sandbox Code Playgroud)

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
});
Run Code Online (Sandbox Code Playgroud)

Igo*_*gor 31

您重新声明gsd为函数内的新变量.vargsd函数内部删除以解决gsd外部范围内的问题.

  • @ user2232681 - 不,`gsd`的第一个定义对于显示的代码是正确的.但是,它的范围是连接到`$(document).ready`的匿名函数,而不是全局函数.如果你想在页面的javascript的其他部分使用`gsd`,那么要么在它前面省略`var`,要么在全局范围内声明它 - 直接在`script`标签内. (2认同)