2017-10-12 221 views
-3

我需要JavaScript變量值傳遞給另一個JavaScript函數如何將JavaScript變量值傳遞給另一個JavaScript函數?

$("#myTabs form").on('submit', function (e) { 
    e.preventDefault(); 
    var linkHref = $(this).parents('.tab-pane').attr('id'); 
    $('#myLinks li a').removeClass('active'); 
    $('#myLinks li') 
    .find('a[href="#' + linkHref + '"]') 
    .parent() 
    .next() 
    .find('a') 
    .tab('show') 
    .addClass('active') 
    .attr('data-toggle', 'tab'); 

    $('a.nav-link').not('.active').css('pointer-events', 'none'); 
    var SAPno = linkHref; 
}); 

$('a.nav-link').not('.active').css('pointer-events', 'none'); 

對於實施例var SAPno值需要將傳遞給另一個JavaScript函數

function GetInfo() { 
    var ID = SAPno; 
} 

是否有可能..

+1

是可以的。做另一個功能(SAPno); –

+0

使用參數定義函數並在調用函數時將變量作爲參數傳遞給函數。 – tobiv

回答

3

要傳遞一個變量到另一個函數,使用函數參數。

更改GetInfo函數接受一個參數:

function GetInfo(SAPno) { 
    var id = SAPno; 
} 

並與SAPno參數調用它(即,SAPno定義的submit函數內):

// calling context 
GetInfo(SAPno); 

MDN docs for function parameters

+0

@SurenSrapyan我會假定'SAPno'是在調用上下文(即'submit'函數)中定義的。如果它作爲參數傳遞,它不必是全局作用域。 –

+0

只是澄清:'GetInfo(SAPno)'中的'SAPno'是一個參數,而不是一個參數。 –

5

,你可以聲明它的功能範圍

var SAPno; 

$("#myTabs form").on('submit', function (e) { 
    SAPno = linkHref; 
}); 

之外,但你必須確保地方都聲明它也是一種可供的getInfo()函數

var SAPno; 

function GetInfo() { 
    var ID = SAPno; 
} 

參考對此瞭解scope

另一種可行的方法是在全球環境中聲明它(不是一個好的做法),但它會工作。

$("#myTabs form").on('submit', function (e) { 
    window.SAPno = linkHref; 
}); 

function GetInfo() { 
    var ID = window.SAPno; 
} 

其在瀏覽器的情況下,全局對象是窗口...

+3

還應該注意的是,用你自己的變量來污染'window' global是不好的做法。 –

-1

當然這成爲可能:

,如果你想SAPno作爲參數

function GetInfo(SAPno) { 
    var id = SAPno; 
    somefunction(id); 
} 

,如果你想要SAPno作爲功能

function GetInfo(SAPno) { 
    var id = SAPno; 
    eval(id); // eval is a built-in function that excute javascript from a normal string 
} 
相關問題