使用javascript从一个函数获取值到另一个函数

Vin*_*nan 3 javascript jquery scope

我想从一个函数获得另一个函数的值.我想将值传递给处理程序页面.但在那我不能得到价值通过..在这里我给了代码.请帮我.例如,假设对于radio = MR&fname = john.

function getdata()
{
   alert('hi');
   var radio = document.getElementsByName("radiobuttonlist1");
   for (var i = 0; i < radio.length; i++)
   {
    if (radio[i].checked)
    alert(radio[i].value);
   }

   var fname=document.getElementById("Firstnametxt").value;
   alert(fname);
}
Run Code Online (Sandbox Code Playgroud)

在这里,我希望将所有这些值转换为另一个函数,这是我的另一个函数.

function sendinfo()
{
getdata();

 $(document).ready(function(){     

   var url="Handler.ashx?radio="+radio+"&fname="+fname+""; "here i want the values from above function"

  alert(url);
    $.getJSON(url,function(json)
    {
        $.each(json,function(i,weed)
        {



        });

    });

});

}
Run Code Online (Sandbox Code Playgroud)

谢谢 .帮我

Kev*_*eal 7

你可以用两种方法做到这一点.

选项1

您可以在两个函数之外定义这些变量,例如:

var radio;
var fname;
getdata() {
    radio = document.getElementsByName("radiobuttonlist1");
    fname=document.getElementById("Firstnametxt").value;
    // VALUE UPDATED HERE
}
sendinfo() {
    // VARIABLE ACCESSIBLE HERE
}
Run Code Online (Sandbox Code Playgroud)

然后,只要更新这些变量的值,就会在最初定义这些变量的范围内更新(在这些函数之外).

javascript变量的范围在{}变量所在的花括号内,以及该集合中的任何花括号.javascript中的范围通常指的是那些花括号{}.有一些例外,包括if你可以在其中定义变量和访问外部的声明(假设条件为真).

选项2

或者您可以将这些变量作为参数传递给第二个函数,如: sendinfo(radio, fname);

通过返回值传递值

您可以在getdata()函数中将值作为对象文字返回,如下所示:

getdata() {
    return {
        radio : document.getElementsByName("radiobuttonlist1"),
        fname : document.getElementById("Firstnametxt").value
    }
}
Run Code Online (Sandbox Code Playgroud)

然后这样做:

sendinfo() {
    var data = getdata();
}
Run Code Online (Sandbox Code Playgroud)

然后访问这些变量,如:data.radio和data.fname.