叛逆达人
小狐狸
小狐狸
  • UID24403
  • 注册日期2008-06-02
  • 最后登录2008-06-02
  • 发帖数4
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:9177回复:7

如何彻底删除HTML控件?

楼主#
更多 发布于:2008-06-02 13:45
element是一个input对象,
用element.parentNode.removeChild(element)移除对象可行。
但是如果之前访问过此对象,即使移除这个对象,但它并非真正移除,
还寄存在内存里,用alert(element)显示“[object HTMLInputElement]”

这使我非常苦恼,请问有什么彻底删除的方法?
叛逆达人
小狐狸
小狐狸
  • UID24403
  • 注册日期2008-06-02
  • 最后登录2008-06-02
  • 发帖数4
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2008-06-02 13:45
wushi777:创建element时不要使用var进行变量捕捉,让element附在global域上;
删除时,用delete element;操作。
回到原帖

不好意思,我看得不太懂,我把代码贴上来,请问如何改进?
<script language="javascript">
function appendElement()
{
var o = document.createElement("DIV");
o.innerHTML = '新增加的Text:<input type="text" name="input1" value="input1">';
document.getElementById('div').appendChild(o);
}
function readElement()
{
var element = document.form1.input1;
if(element)
alert(element.value);
}
function deleteElement()
{
var element = document.form1.input1;
if(element)
element.parentNode.removeChild(element);
}
</script>
<form name="form1">
<div id='div'></div>
<input type="button" value="创建input1" onclick="appendElement();">
<input type="button" value="访问input1" onclick="readElement();">
<input type="button" value="删除input1" onclick="deleteElement();"><BR>
如果对象在delete之前被访问过,它就会寄存在内存里,即使删除,还能访问。
请用FireFox测试。<BR>
如何彻底删除?
</form>
叛逆达人
小狐狸
小狐狸
  • UID24403
  • 注册日期2008-06-02
  • 最后登录2008-06-02
  • 发帖数4
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2008-06-02 13:45
还是不行哦。
你点“创建input1”
再点“访问input1”
再点“删除input1”
再点“访问input1”试试  


<script language="javascript">
function appendElement()
{
	var o = document.createElement("DIV");
	o.innerHTML = '新增加的Text:<input type="text" name="input1" value="input1" isDelete="0">';
	document.getElementById('div').appendChild(o);
}
function readElement()
{
	element = document.form1.input1;
	if(element)
		alert("value="+element.value);
	delete element;
}
function deleteElement()
{
	if(document.form1.input1) {
	document.form1.input1.parentNode.removeChild(document.form1.input1);
	}
}
</script>
<form name="form1">
<div id='div'></div>
<input type="button" value="创建input1" onclick="appendElement();">
<input type="button" value="访问input1" onclick="readElement();">
<input type="button" value="删除input1" onclick="deleteElement();">
</form>
叛逆达人
小狐狸
小狐狸
  • UID24403
  • 注册日期2008-06-02
  • 最后登录2008-06-02
  • 发帖数4
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2008-06-02 13:45
天呐,FireFox怎么这样啊,为什么不改改呢?
苹果的Safari也是这样~~~
游客

返回顶部