【非小白】关于getElementById获取不到对象
页面中有两段js程序代码
1:实现div间的样式切换
function show_menuc(id1, id2, index, count, classcurrent, classname) {
for (var i = 0; i < count; i++) {
document.getElementById(id2.toString() + i).style.display = "none";
document.getElementById(id1.toString() + i).className = classname;
}
document.getElementById(id2.toString() + index).style.display = "block";
document.getElementById(id1.toString() + index).className = classcurrent;
}
2、控制页面呈现(调试时为了避免问题故意写复杂了,各位可以无视语法。。)
function changePic(i, j, l) {
var ij = "pic" + i + j;
var ijl = "txtpicUrl" + i + j + l;
var titleijl = "txtTitle" + i + j + l;
var titleij = "spTitle" + i + j;
var spijl = "txtDes" + i + j + l;
var spij = "spDes" + i + j;
var title = document.getElementById(titleijl).value;
var imgUrl = document.getElementById(ijl).value;
var des = document.getElementById(spijl).value;
document.getElementById(ij).src = imgUrl;
document.getElementById(spij).innerHTML = des;
document.getElementById(titleij).innerHTML = title;
}
页面中便是各种id的div框等元素(命名绝无重复)
问题在于,页面首次加载时方法1可以完美运行,但当触发了点击事件(方法2)后,除最后一个元素的点击事件外,其余事件均会在方法1的循环中,提示找不到对象错误,但是同时对象肯定是存在的,
此现象只在ie中出现
试问:出现此种原因根源何在?为何页面加载方法2会影响方法1的循环获取对象部分?
烦请各位大侠前来支招,小弟在此先谢过了
------解决方案--------------------
把你的代码拷了份到本地看,发现你的
span没有结束标签,所以在你调用ChangePic方法时document.getElementById(spij).innerHTML = des;把后面所有的内容都替换为des了。firefox,google可能会自动把没有结束标签的HTML补全,但是IE好像这样做。你把上面那个位置的span补全,看下还有没有问题。
下面我调试代码截图
第一个alert
第二个alert,把span后面的HTML少了一段