2016-05-30 81 views
0

我有一个html页面,我打电话从HTML页面javascript功能和脚本是在单独的文件存储和获取价值从一个功能到另一个功能

HTML

<a href="javascript:void(0);" id="btn1" onclick="ButtonClick();">Click Me</a> 
<script src="Externalscript.js"></script> 
<script> 
    Initialize('1,2,3,4'); 
</script> 

的JavaScript

var myList; //global variable 
function Initialize(ids) { 
myList = new Array(); 
var idList = ids.split(','); 
for (i = 0; i < idList.length; i++) { 
    myList.push(idList[i]); 
} 

我STO在myList环的ID值,现在我想检索mylist如果按钮点击

function ButtonClick() { 
    alert(myList); 
} 

现在,当我试图提醒它给undefined的myList中。

如何存储值在global变量和其它功能

+0

这应该正常工作,或者你的'ButtonClick'从未被解雇了。你在哪里实现'ButtonClick'功能? – choz

+0

这是射击,这就是为什么我得到undefined在警报 –

回答

2

return从功能不是更新global-variable和访问它

function ButtonClick() { 
 
    var returned = Initialize('1,2,3,4'); 
 
    console.log(returned); 
 
} 
 

 
function Initialize(ids) { 
 
    var myList = new Array(); 
 
    var idList = ids.split(','); 
 
    for (i = 0; i < idList.length; i++) { 
 
    myList.push(idList[i]); 
 
    } 
 
    return myList; 
 
}
<a href="javascript:void(0);" id="btn1" onclick="ButtonClick();">Click Me</a>
值检索

编辑:将结果存储在global-variable

var returned = Initialize('1,2,3,4'); 
 

 
function ButtonClick() { 
 
    console.log(returned); 
 
} 
 

 
function Initialize(ids) { 
 
    var myList = new Array(); 
 
    var idList = ids.split(','); 
 
    for (i = 0; i < idList.length; i++) { 
 
    myList.push(idList[i]); 
 
    } 
 
    return myList; 
 
}
<a href="javascript:void(0);" id="btn1" onclick="ButtonClick();">Click Me</a>

+0

我不想在'ButtonClick()'里面调用我的'Initialize'函数。我想分别打电话给他们,并在全球范围内存储值,当我打电话Initialize() –

+0

@DheerajPatnaik,检查编辑.. – Rayon

+0

是否有可能做我的问题提到的方式 –

0
<!DOCTYPE html > 
<html> 
<head> 
<script> 
    Initialize('1,2,3,4'); 
    var myList; //global variable 
      function Initialize(ids) 
      { 
      myList = new Array(); 
      var idList = ids.split(','); 
      for (i = 0; i < idList.length; i++) 
        { 
        myList.push(idList[i]); 
        } 
      } 

     function ButtonClick() 
      { 
       alert(myList); 
     } 
</script> 
     </head> 
     <body> 
     <a href="javascript:void(0);" id="btn1" onclick="ButtonClick();">Click Me</a> 
     </body> 
     </html> 

我只是改写了你的代码,并将其打印效果与预期

+0

无需“拆分”并循环,以填充另一个数组 – Pimmol

0

我无法重建的问题列表,1,2,3,4。这是你的代码看起来像:

<a href="javascript:void(0);" id="btn1" onclick="alert(myList)">Click Me</a> 

<script> 

var myList; //global variable 
function Initialize(ids) { 
    myList = new Array(); 
    var idList = ids.split(','); 
    for (i = 0; i < idList.length; i++) { 
     myList.push(idList[i]); 
    } 
} 

Initialize('1,2,3,4'); 
</script> 

http://codepen.io/calvinclaus/pen/WxNaPX?editors=1011

因为这个作品...你能提供一个笔的问题 ?

0

你的代码应该工作。

一个忠告:split已经创建了一个数组:MDN

所以你正在做的是:

  • 从字符串(idList = ids.split(',')
  • 遍历数组创建一个数组
  • 将该阵列中的每个值添加到其他阵列(myList.push(idList[i]);

哪里myList = ids.split(',');足够

var myList; 

function Initialize(ids) { 
    myList = ids.split(','); 
} 

Initialize('1,2,3,4'); 

function ButtonClick(e) { 
    e.preventDefault(); 

    alert(myList); 
} 
document.getElementById('btn1').addEventListener('click', ButtonClick); 

工作演示:fiddle