所以这里是我的脚本,基本上是它在页面加载时切换一些复选框图像(我用更大的图像替换复选框以便于点击)。
我收到错误: [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");
}
}
}
}