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)
谢谢 .帮我
你可以用两种方法做到这一点.
您可以在两个函数之外定义这些变量,例如:
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你可以在其中定义变量和访问外部的声明(假设条件为真).
或者您可以将这些变量作为参数传递给第二个函数,如: 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.