我正在尝试从此代码访问javascript变量值到ajax代码
我试图像这样访问但它不起作用 -
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)
{}
但它不起作用,当我在a
内警告remove(a){}
的值时,它正在打印undefined
答案 0 :(得分:4)
全局定义变量 -
var a= "hi";
function getResults(){ ... }
function remove() { alert(a); ... }
答案 1 :(得分:4)
试试这个
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;
}
}
}
调用
中的函数 希望它会有所帮助。答案 2 :(得分:3)
您已将变量“a”声明为getresults函数的本地变量。将变量“a”声明为全局变量,不要使用var关键字。
if (radios[i].checked)
{
a = radios[i].value
break;
}
你有两个不同的函数,并在另一个函数中获取一个函数的变量,全局声明它。
答案 3 :(得分:2)
你需要在函数之外声明变量,如
var a = null
function getResults()
当你在函数外声明它时,你可以从任何你想要的地方访问变量
另外,请查看jQuery .ajax()以获取有关AJAX的简单代码
答案 4 :(得分:2)
您已使用'var'关键字在getResults()函数中定义了 a 。这意味着它只会在该函数内的范围内。
如果你想在另一个函数中使用该变量,你需要在调用另一个函数时传递它 - 简单的例子如下:
function myFunction() {
var a = "this is a";
secondFunction(a);
}
function secondFunction(a) {
alert(a);
}
另一种方法是声明变量,使其具有全局范围 - 但这不是一个好主意,除非您确信它不会与您可能存在的任何其他全局变量冲突。页。
除非绝对需要全局变量,否则最好限制范围。它会使你的代码更整洁,调试也更容易。