3

我正在尝试从此代码访问 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)
{}

但它不起作用,当我 alerta里面的值时remove(a){},它正在打印undefined

4

5 回答 5

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

在里面调用一个函数

希望它会有所帮助。

于 2013-08-21T10:58:02.140 回答
4

全局定义变量 -

var a= "hi";

function getResults(){ ... }

function remove() { alert(a); ... }
于 2013-08-21T10:53:11.357 回答
3

您已将变量“a”声明为 getresults 函数的本地变量。将变量“a”声明为全局变量,不要使用 var 关键字。

if (radios[i].checked) 
    {
     a = radios[i].value
        break;
    }

您有两个不同的函数,要在另一个函数中获取一个变量,请全局声明它。

于 2013-08-21T10:56:40.837 回答
2

您需要在函数外部声明变量,例如

var a = null
function getResults()

当您在函数外部声明它时,您可以从任何您想要的地方访问该变量

另外,查看 jQuery .ajax() 以获取有关 AJAX 的更简单代码

于 2013-08-21T10:53:26.973 回答
2

您已经使用 'var' 关键字在 getResults() 函数内部定义了一个。这意味着它只会在该函数内的范围内。

如果您想在另一个函数中使用该变量,则需要在调用另一个函数时传递它 - 简单示例如下:

function myFunction() {
 var a = "this is a";
 secondFunction(a);
}

function secondFunction(a) {
 alert(a);
}

另一种方法是声明变量,使其具有全局范围- 但这不是一个好主意,除非您确信它不会与您页面上可能存在的任何其他全局变量冲突。

除非绝对需要全局变量,否则最好限制范围。它会让你的代码更整洁,调试更容易。

于 2013-08-21T10:54:22.667 回答