2016-05-30 80 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