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

时间:2012-11-08 04:57:11

标签: javascript jquery scope

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

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

这里我希望将所有这些值传递给另一个函数,这是我的另一个函数。

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)
        {



        });

    });

});

}
谢谢你。帮助我

3 个答案:

答案 0 :(得分:7)

你可以这两种方式。

选项1

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

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

然后每当更新这些变量的值时,它将在最初定义这些变量的范围内更新(在这些函数之外)。

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

选项2

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

通过返回值传递值

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

getdata() {
    return {
        radio : document.getElementsByName("radiobuttonlist1"),
        fname : document.getElementById("Firstnametxt").value
    }
}

然后这样做:

sendinfo() {
    var data = getdata();
}

然后访问这些变量,例如:data.radiodata.fname

答案 1 :(得分:2)

var radio;
var fname;

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

   fname=document.getElementById("Firstnametxt").value;
   alert(fname);
}

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)
            {



            });
        });
    });
}

答案 2 :(得分:1)

您可以全局声明两个变量,将它们设置为第一个函数中所需的值,并在第二个函数中访问它们。