【问题标题】:how can i pass a variable content into a function as parameter如何将变量内容作为参数传递给函数
【发布时间】:2015-05-22 22:34:52
【问题描述】:
$(function () {

    var info = JSON.parse($('#userInfo').text());
    var empFirstName = info.EmployeedFirstName;
    var empLastName = info.EmployeedLastName;
    var empFullName = empFirstName + " " + empLastName;
});

我正在从超链接调用摘要函数。我只想在单击链接时调用摘要函数。

<a onclick="summary();">Summary</a>

function summary(empFullName){
}

【问题讨论】:

  • empFullName 的范围在 $(function(){}) 之外不可用,因为您在其中声明了 var

标签: javascript jquery


【解决方案1】:

从链接中删除内联函数调用并向链接添加单击事件处理程序,然后在调用单击处理程序时调用该函数并将变量传递给它。看一下sn-p,你就会明白了。

$(function () {

  //var info = JSON.parse($('#userInfo').text());
  //var empFirstName = info.EmployeedFirstName;
  //var empLastName = info.EmployeedLastName;
  var empFullName = 'foo' + " " + 'bar';
  
  // added click event handler here
  $('a').on('click', function() {
     summary(empFullName); // call summary with empFullName
  });
  
});

function summary(empFullName){
  console.log(empFullName);
  $('#output').text(empFullName);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="#">Summary</a>
<div id="output"></div>

【讨论】:

  • 正在从超链接调用摘要函数。我只想在单击链接时调用摘要函数。 总结
  • @user3479738 您应该将其添加到问题中
  • @user3479738 你没有在你的问题中这么说。
【解决方案2】:

这对您有用,但您应该查看 window 对象、全局变量以及它们可能被认为是坏的原因。

$(function () {    
    var info = JSON.parse($('#userInfo').text());
    var empFirstName = info.EmployeedFirstName;
    var empLastName = info.EmployeedLastName;
    window.empFullName = empFirstName + " " + empLastName;
});

function summary(empFullName){
    // use empFullName here
}

然后修改你的链接传入全局

<a onclick="summary(empFullName);">Summary</a>

一些相关阅读:Should I use window.variable or var?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    相关资源
    最近更新 更多