从函数变量到window.location.href'未定义'

时间:2014-01-31 11:53:52

标签: javascript php

再次问好Stack的人

我的代码有一个小问题。 我正在尝试使用window.location.href发送变量,但我一直收到错误not defined

这是选择我的图像(src)和id(selectedid)的函数 在我测试过的时候,selectedid确实有效。

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

希望你们能帮我解决这个问题。

4 个答案:

答案 0 :(得分: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;
}

如果你只使用chosenid中传递的参数function send(),那还不会更好吗?它看起来像一个全局变量。

答案 1 :(得分:0)

您在函数内定义了您的selectedhead变量..所以它只能在此函数的范围内访问。将其移到函数外:

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

答案 2 :(得分: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 ...
    }
}

答案 3 :(得分:0)

您需要将chosenhead变量定义为全局变量。

那样做

var chosenhead = '';

然后在

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