【问题标题】:how to pass JavaScript variable value to another JavaScript function?如何将 JavaScript 变量值传递给另一个 JavaScript 函数?
【发布时间】:2017-10-12 12:50:30
【问题描述】:

我需要将 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;
}

有可能吗..

【问题讨论】:

  • 可以。这样做另一个函数(SAPno);
  • 用参数定义函数,并在调用时将变量作为参数传递给函数。

标签: javascript jquery html css ajax


【解决方案1】:

你可以在函数范围之外声明它

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;
}

在浏览器的情况下,全局对象是窗口...

【讨论】:

  • 还应该注意,用自己的变量污染window 全局被认为是不好的做法。
【解决方案2】:

要将变量传递给另一个函数,请使用函数参数。

更改您的 GetInfo 函数以接受参数:

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

并使用SAPno 参数调用它(即,在定义SAPnosubmit 函数内部):

// calling context
GetInfo(SAPno);

请参阅MDN docs for function parameters

【讨论】:

  • @SurenSrapyan 我假设SAPno 是在调用上下文中定义的(即submit 函数)。如果作为参数传递,则不必是全局范围的。
  • 澄清一下:GetInfo(SAPno) 中的SAPno 是一个参数,而不是参数。
【解决方案3】:

当然可以:

如果你想要 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
}

【讨论】:

    猜你喜欢
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 2015-06-08
    相关资源
    最近更新 更多