我有一个ID =“0-0”的HTML DIV。我有javascript尝试调用该ID。但它给出了一个错误:TypeError: Cannot set property 'innerHTML' of null
。我不知道如何调试这个,因为Javascript基本上没有按照我期望的方式行事。
function getSurroundingIDs(id){
var onesPlace = parseInt(id.split("-", 2)[0]);
var tensPlace = parseInt(id.split("-", 2)[1]); //split on -, return 2 tokens
var IDs = new Array();
for (var row=onesPlace-1;row<=onesPlace+1;row++){
for (var col=tensPlace-1;col<=tensPlace+1;col++){
if(document.getElementById(row + "-" + col)){IDs[IDs.length]=row+"-"+col;}
}
}
return IDs;
}
那么为什么getElementByID(id)
返回null?
答案 0 :(得分:3)
有几个问题:
getElementByID()
无法正常工作.. ID和NAME令牌必须以字母([A-Za-z])开头,可能是 后跟任意数量的字母,数字([0-9]),连字符(“ - ”), 下划线(“_”),冒号(“:”)和句点(“。”)。
您可以使用例如id="div-0-0"
。
请注意(如评论中所述@CrazyTrain)HTML5不存在此限制,大多数浏览器都会以任何方式获取数字ID。
答案 1 :(得分:0)
标签中的分号和'return false'对我来说很突出。如果可能的话,我会稍微清理一下html。