我正在尝试访问此代码到ajax代码的javascript变量值
我试着这样访问,但它不起作用-
javascript代码
<script type="text/javascript">
function getResults()
{
var radios = document.getElementsByName("address");
for (var i = 0; i < radios.length; i++)
{
if (radios[i].checked)
{
var a = radios[i].value
break;
}
}
}
function remove(a)
{
alert(a);
if(a=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if(window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function()
{
if(xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","theaterdel.php?q="+a,true);
xmlhttp.send();
}
</script>
在这段代码中,我试图访问变量a
的值,从getResults()
函数到remove()
,就像这个一样
remove(a)
{}
但它不起作用,当我在remove(a){}
中提醒a
的值时,它正在打印undefined
全局定义变量-
var a= "hi";
function getResults(){ ... }
function remove() { alert(a); ... }
尝试这个
function getResults()
{
var radios = document.getElementsByName("address");
for (var i = 0; i < radios.length; i++)
{
if (radios[i].checked)
{
var a = radios[i].value
remove(a);
break;
}
}
}
调用内部的函数
希望它能有所帮助。
您已经将变量"a"声明为getresults函数的局部变量。将变量"a"声明为全局变量,不要使用var关键字。
if (radios[i].checked)
{
a = radios[i].value
break;
}
您有两个不同的函数,要在另一个函数中获得其中一个函数的变量,请全局声明它。
您需要在函数外声明变量,如
var a = null
function getResults()
当你在函数外声明它时,你可以从任何你想要的访问变量
另外,请查看jQuery.ajax(),以获取有关ajax 的更简单代码
您已经在getResults()函数中使用'var'关键字定义了一个。这意味着它将只在该函数的范围内。
如果你想在另一个函数中使用这个变量,你需要在调用另一个功能时传递它——简单的例子如下:
function myFunction() {
var a = "this is a";
secondFunction(a);
}
function secondFunction(a) {
alert(a);
}
另一种选择是声明变量,使其具有全局范围,但这不是一个好主意,除非您确信它不会与页面上可能存在的任何其他全局变量冲突。
除非绝对需要全局变量,否则最好限制作用域。它将使您的代码更整洁,调试也更容易。