Javascript声明变量未定义

时间:2013-08-21 17:28:09

标签: javascript

所以这里是我的脚本,基本上是它在页面加载时切换一些复选框图像(我用更大的图像替换复选框以便于点击)。

我收到错误: [13:26:12.076] TypeError:无法将undefined转换为object @ http://example.com/manage_account_js_snippet.js:17

这是为什么?我已经明确地将checkboxArray声明为对象。所以我不确定为什么它一直在抛出这个错误。我的appologies,因为我对javascript不太好,所以答案可能很明显。此错误所在的页面位于登录页面后面,因此我无法直接链接到该页面。

编辑:我是个白痴 - 知道我忘记了什么 - 将其搞砸的行是#17行

$(document).ready(checkthemboxes());

var checkboxArray = {};

function togglecheckbox(checkboxid, forcestate)
{
  if(forcestate == "checked")
  {
    document.getElementById("checkbox_" + checkboxid).checked = true;
    document.getElementById("checked" + checkboxid).style.display = "inline";
    document.getElementById("unchecked" + checkboxid).style.display = "none";
    checkboxArray[checkboxid] = true;
  } else if (forcestate == "unchecked") {
    document.getElementById("checkbox_" + checkboxid).checked = false;
    document.getElementById("checked" + checkboxid).style.display = "none";
    document.getElementById("unchecked" + checkboxid).style.display = "inline";
    checkboxArray[checkboxid] = false;
  } else {
    if(checkboxArray[checkboxid] == 'undefined')
    {
      checkboxArray[checkboxid] = false;
    }

    if(!checkboxArray[checkboxid])
    {
      document.getElementById("checkbox_" + checkboxid).checked = true;
      document.getElementById("checked" + checkboxid).style.display = "inline";
      document.getElementById("unchecked" + checkboxid).style.display = "none";
      checkboxArray[checkboxid] = true;
    } else {
      document.getElementById("checkbox_" + checkboxid).checked = false;
      document.getElementById("checked" + checkboxid).style.display = "none";
      document.getElementById("unchecked" + checkboxid).style.display = "inline";
      checkboxArray[checkboxid] = false;
    } 
  }
}

function checkthemboxes()
{
  var cbs = document.getElementsByClassName('uncheckedcheckbox');
  var idname;
  for(var i = 0; i < cbs.length; i++) {
    if(cbs[i].type == 'checkbox') {
      idname = cbs[i].id.replace("checkbox_","");
        if(cbs[i].checked == true)
        {
            togglecheckbox(idname, "checked");
        } else {
            togglecheckbox(idname, "unchecked");
        }
    }
  }
}

0 个答案:

没有答案