普通DOM元素没有getElementById方法?

<div id="first">
    <div id="second"></div>
</div>
var first = document.getElementById("first");
var second = first.getElementById("second");

这时会报错,说secondgetElementById不是一个function,为什么?

阅读 7.3k
8 个回答

getElementById 及其他获取 DOM 元素系列方法都是属于 document 对象的,如果你要让指定 DOM 元素执行 getElementById 方法那就需要进行一些包装了,这样的话你还不如使用 jQuery。

getElementById 是 document 对象的方法,其它DOM对象中没有,也不需要,因为在页面中任何有id属性的DOM对象都可以通过 document.getElementById(id) 来获取。

var first = document.getElementById("first");
var second = document.getElementById("second"); // 直接获取即可

getElementById本来就只是document的方法。

ID属性在 dom中是唯一的,getElementById是直接定位指定id的元素,不必通过其他元素来间接定位。

你应该是记混了getElementsByTagName()和getElementById();
这样可以

document.getElementById("first").getElementsByTagName("div"); 

应该是规定吧,还有document.getElementsByName也不能直接用,必须前边加上document

有没有,浏览器不都告诉了你吗

因为getElementById是document对象方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题