|
今天为了一段JS代码调试了一个下午!最后竟然发现是相同ID但对象不同的问题!
具体是这样的:
为一个LI(该LI存在于一个绝对位置的层中)绑定了一个单击事件,并传递一个对象过去(如下),但是用户手动删除含有OBJ的元素后,同时隐藏存在该LI的层,但是那个参数OBJ依然作为一个对象存在!然后又新建一个OBJ后存在两个相同ID但不同对象的对象!这样原先LI的OBJ依然存在,但无法再被使用。
%¥……¥%——¥调试了一个下午,我晕哦!!!!!!!!!!!!!
function loadSelect(obj,copy){
。。。。。。
liObj[j].onclick=function(){
//下面一句证明,虽然重新创建后ID相同,但是却是不同的对象,虽然删除后document.getElementById不存在了,但是obj还是存在!
//alert(obj.id+"==selArea10116");if(document.getElementById("selArea"+10116)==obj)alert('1');
//做两件事情,一是将用户选择的保存到原始select标签中,要不做的再好看表单递交后也获取不到select的值了。
obj.options.length=0;
obj.options[0]=new Option(this.innerHTML,this.id);
//同时我们把下拉的关闭掉。
document.getElementById("selectchild" + obj.name).style.display="none";
childCreate=false;
iDiv.innerHTML=this.innerHTML;
};
----------------------------------------------------------------------------------------------------------------
js删除一个div层对象,从html中移除div代码2008-05-13 14:43/**
* @deprecated 关闭div 真正的从html中移除div代码,释放资源,兼容ie和火狐
*
*/
var divobj = creatElement("div");
function closeDiv(divobj)
{
divobj.parentNode.removeChild(divobj);
} |
|