用id确定对象为什么时候可以,有时候不可以呢?

f2k 2002-03-18 02:28:44
我在写javascript时,发现用id引用对象有时候可以,
有时候就说“找不到对象”,我只好用document.getElementById()。
不太明白原因,请指教。
...全文
37 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
f2k 2002-03-19
  • 打赏
  • 举报
回复
谢谢海曦兄。
但是我发现使用IE6.0,在同一个frame中,有时候也无法通过
id找到对象,这又是为什么呢?
我甚至还遇上一次刚开始调用函数能找到对象,反复使用几次
以后就找不到对象了,需要把网页关闭,重新打开。当时使用
的是IE5.0
hax 2002-03-19
  • 打赏
  • 举报
回复
还是拿源代码来看看。

IE有时候有bug,比如css样式不对,要刷一次就好了。但是没碰到过你说的情况。我猜是不是你的script可能动态的生成了一些不正确的html代码,造成这种情况?

反正我建议都用DOM吧。我现在编js都用dom,只在网页后期优化的时候再考虑是否为IE4写个兼容版本。
hax 2002-03-18
  • 打赏
  • 举报
回复
id是全局的没错。关键在于不同的文档对象结构。

比如<div id="myObj">I love <i>XML</i>!</div>

在IE的DHTML中直接myObj.innerText就等于 I love XML!
但是你不能跨window和跨frame的直接调用,必须首先引用到对象所在的document。

但是在W3C的标准:DOM里,使用document.getElementById("MyObj")的方式。注意有双引号,id在这里作为一个字符串参数传递给了getElementById函数。
Mozilla、Netscape 6、Opera 6都是只能用DOM的方式。

IE 5以上既可以用DHTML也可以用DOM。
f2k 2002-03-18
  • 打赏
  • 举报
回复
这样的话 id 和 name 有什么区别呢?
山林73 2002-03-18
  • 打赏
  • 举报
回复
html所有对象都是层次结构,id 也不例外
顶级对象只有几个
f2k 2002-03-18
  • 打赏
  • 举报
回复
id不是全局的吗?
山林73 2002-03-18
  • 打赏
  • 举报
回复
看你当前调用的事件和对象,最好以全局对象,如:document,来访问你的对象,document.all.yourid,document.all("a"),docuement.forms(0).....

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧