javascript - JavaScript 变量的范围

标签 javascript

是否可以在同一个 .html 页面的函数之上定义一些全局变量?

    <script type="text/javascript">

        birthYear = document.getElementById('<%=ddlBirthYear.ClientID %>');
        birthMonth = document.getElementById('<%=ddlBirthMonth.ClientID %>');
        birthDay = document.getElementById('<%=ddlBirthYear.ClientID %>');

        function ValidateCardField(validator, args)
        {
            if (args.Value.length > 0)
                args.IsValid = true;
            else
                args.IsValid = false;
        }
...

我得到了变量值的空值。

最佳答案

是的,可以使用全局变量,而且您似乎做得对(尽管您可能应该使用 var 关键字来定义它们)。您当前面临的问题是您试图在 DOM 中的元素被渲染之前访问它们。您需要做的是全局定义您的变量,然后等待页面加载,然后再将它们分配给适当的 DOM 元素...

var birthYear, birthMonth, birthDay;

window.onload = function() {
  birthYear = document.getElementById('<%=ddlBirthYear.ClientID %>');
  birthMonth = document.getElementById('<%=ddlBirthMonth.ClientID %>');
  birthDay = document.getElementById('<%=ddlBirthYear.ClientID %>');
}

现在,这些变量将在页面加载后全局访问。

关于javascript - JavaScript 变量的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1598557/

相关文章:

javascript - 仅针对最小视口(viewport)宽度调整窗口大小后运行 jquery 函数

javascript - 如何均匀地进行淡入淡出过渡?

javascript - Angular 图饼图数据点击事件

Chrome 扩展中的 javascript 正则表达式

javascript - 单击 "Yes"单选按钮时显示文本区域,默认情况下或单击 "No"单选按钮时保持隐藏状态

javascript - 如何选择和使用 srcset 属性的值?

javascript - jquery:将分隔的数组放在一个数组中而不连接它们

javascript - 在 xml 标签中传递 base64 图像字符串

javascript - React - componentWillReceiveProps 中的 setState

javascript - 如何使用angularjs获取html元素内的文本?