JavaScript数组行为不同

时间:2014-02-19 09:28:57

标签: javascript jquery html dom

我有像

这样的HTML
<div id="MAC_Allocation_Heading">
               <span style="position:relative;left:2%;"> 
                   MAC Allocation
               </span> 
               <span style="position:relative;left:9%;"> 
                  <label>Quantity</label>
                  <input type="text" style="width:40%" name="txtMACNeededAllocations"/>
               </span> 
  </div>

现在我的.js文件中有一个全局数组

var user_entry = [$("#MAC_Allocation_Heading input[type=text]:first")]  

并在FormValidate()中我有以下代码

function FormValidate() {

     console.log(user_entry[0].val());
}

我运行应用程序并在文本框中输入值。但我得到的控制台输出为'undefined'

如果我将数组“user_entry”放在函数中,那么我就能得到文本框值 是什么原因?
我希望将这个数组保持全局,因为它也将被其他函数使用

2 个答案:

答案 0 :(得分:0)

试试这个:

    var user_entry = [];


    function FormValidate() 
    {  
         alert(user_entry[0].val());
    }

    $(document).ready(function()
    {
         user_entry = [$("#MAC_Allocation_Heading input[type=text]:first")]  
    })

通过这个你可以实现“我希望将这个数组保持全局,因为它也会被其他函数使用”。

答案 1 :(得分:0)

我按照上面的评论得到了这个问题

我在$(document).ready(function(){...})中初始化了数组;
这解决了我的问题

问题是我在标记之前包含了.js文件,以便在完全加载DOM之前我尝试获取对象的引用,这显然是空的