请教一个js的问题

3 views
Skip to first unread message

张沈鹏

unread,
Jul 19, 2007, 11:18:04 PM7/19/07
to acg-school
请教一个js的问题
var a=document.getElementsByTagName("html")[0];
a.eee=1;
现在我想删除这个eee属性
firefox可以直接
delete a.eee;
但是ie里面这样做会报错
如果设置
a.eee=undefined;
但是for...in循环中还是会出现
for(var i in a){
if(i=="eee")alert(i)
}
请问有什么好的解决方法吗?

银色考拉

unread,
Jul 25, 2007, 2:17:17 AM7/25/07
to acg-school

我在 WinXP SP2+IE 6.0 下可以使用 delete 方法,而如果使用 a.eee = undefined; 确实还是会进入循环
的。
代码如下:
<script>
var a = new Object();
a.eee = "Hello world!";
a.bbb = "Test~";
alert(a.eee);
delete a.eee;
// a.eee = undefined;
alert(a.eee);
for (var i in a) {
alert(i);
}
</script>

!张沈鹏(电子科大 08年毕业)

unread,
Jul 25, 2007, 2:22:57 AM7/25/07
to acg-s...@googlegroups.com
请注意一下我的代码中a不是一个简单的object,而是一个htmlElemenet

var a=document.getElementsByTagName("html")[0];

在 07-7-25,银色考拉<Kid...@gmail.com> 写道:


--
欢迎访问我的博客:
http://zsp.javaeye.com/

--张沈鹏

银色考拉

unread,
Jul 25, 2007, 3:43:57 AM7/25/07
to acg-school

On Jul 25, 2:22 pm, "!张沈鹏(电子科大 08年毕业)" <zsp...@gmail.com> wrote:
> 请注意一下我的代码中a不是一个简单的object,而是一个htmlElemenet
> var a=document.getElementsByTagName("html")[0];
>

> 在 07-7-25,银色考拉<Kid....@gmail.com> 写道:

嗯,IE下确实不行。
不过可以通过 a.removeAttribute("eee"); 来删除 eee 这个属性。

!张沈鹏(电子科大 08年毕业)

unread,
Jul 25, 2007, 3:53:18 AM7/25/07
to acg-s...@googlegroups.com
这样做在firefox又不行......
没有一个统一的标准

在 07-7-25,银色考拉<Kid...@gmail.com> 写道:
>
>

银色考拉

unread,
Jul 25, 2007, 4:23:25 AM7/25/07
to acg-school

On Jul 25, 3:53 pm, "!张沈鹏(电子科大 08年毕业)" <zsp...@gmail.com> wrote:
> 这样做在firefox又不行......
> 没有一个统一的标准
>

> 在 07-7-25,银色考拉<Kid....@gmail.com> 写道:

没办法,用 try catch 或者其它方法来解决这个浏览器兼容性问题好了
现在做 Web 不得不考虑这些差异性

Lia

unread,
Jul 29, 2007, 10:45:18 AM7/29/07
to acg-school
啊,我居然可以回复这个,好激动啊!呵呵!
Reply all
Reply to author
Forward
0 new messages