2014-01-31 193 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; 
}