2014-01-31 154 views
1

你好再次堆栈的人从函数变量到window.location.href'未定义'

我有我的代码小问题。 我想发送我的变量与window.location.href,但我不断收到错误not defined

这是函数,它会选择我的图像(src)和id(chosenid) chosenid的确如我测试过的那样工作。

function HeadShow() { 
    var HeadItems = document.getElementById('HeadItems'); 
    HeadItems.style.display = 'block'; 
} 

function headHide(src, chosenid) { 

    var head = document.getElementById("head"); 
    var HeadItems = document.getElementById('HeadItems'); 
    HeadItems.style.display = 'none'; 
    head.innerHTML = "<img src='" + src + "' width=80; height=80;>"; 
    var chosenhead = chosenid; 

} 

然后,我也有应变量发送到下一个页面中的功能:

function send() { 
    window.location.href = "test3.php?head=" + chosenhead; 
} 

我得到的是错误:chosenhead is not defined

希望你们能帮助我有了这个。

回答

0

您在函数中定义了您的选择头变量..因此它只能在此函数的范围内访问。移动它的功能外:

var chosenhead = ''; 

     function HeadShow() { 
        var HeadItems = document.getElementById('HeadItems'); 
        HeadItems.style.display = 'block'; 
    } 

    function headHide(src, chosenid) { 

        var head = document.getElementById("head"); 
        var HeadItems = document.getElementById('HeadItems'); 
        HeadItems.style.display = 'none'; 
        head.innerHTML = "<img src='" +src+ "' width=80; height=80;>"; 
        chosenhead = chosenid; 

    } 

    function send() 
    { 
     window.location.href = "test3.php?head=" + chosenhead; 
    } 
+1

尝试过,但现在它在window.location的 – user3249657

+0

没有等到我的坏发送一个空的变量。我犯了一个错字。感谢你的回答 – user3249657

1

只需在全局声明变量chosenhead即可。你的head.innerHTML也是不正确的。

示例代码

var chosenhead; 

function headHide(src, chosenid) { 

    var head = document.getElementById("head"); 
    var HeadItems = document.getElementById('HeadItems'); 
    HeadItems.style.display = 'none'; 
    head.innerHTML = "<img src='" + src + "' style='width=80; height=80;'>"; 
    chosenhead = chosenid; 

} 

function send() { 
    window.location.href = "test3.php?head=" + chosenhead; 
} 

而且惯于它更好,如果你只是用在function send()传递的参数chosenid?它看起来像一个全局变量。

0

改了一下:

var chosenhead = null; // define globally 
function headHide(src, chosenid) { 

       var head = document.getElementById("head"); 
       var HeadItems = document.getElementById('HeadItems'); 
       HeadItems.style.display = 'none'; 
       head.innerHTML = "<img src='" +src+ "' width=80; height=80;>"; 
       chosenhead = chosenid; 

} 

function send() 
{ 
    if (chosenhead != null) 
     window.location.href = "test3.php?head=" + chosenhead; 
    else { 
     // some error handling ... 
    } 
} 
0

您需要定义chosenhead变量作为全球。

做那

var chosenhead = ''; 

然后调用它在

function send() 
{ 
    window.location.href = "test3.php?head=" + chosenhead; 
}