js的document.getelementsbytagname一定要有document吗
展开全部
必须要,该语句完整写法是:
window.document.getElementByTagName(tagName)
其中,所有元素的最上级都是window,所以window是可以省略的。
举个例子,就比如alert:
alert(alertString);
window.alert(alertString);
以上两行是完全相同的。
然而document是不可省略的,因为getElementByTagName函数获取的是整个页面的全部对象,在从中筛选出符合条件的对象。如果省略,就变成:
window.getElementByTagName(tagName)
这么做相当于跨级了,必然会出现错误。
因为,document是window中的一个对象,同类的还有很多其他window的子对象,element又是document中的对象。如果直接在window级别获取element是不行的的,因为element并不存在于window中。
说得通俗一点吧,比如获取样式的时候:
document.getElementById(id).style
你不可能写成
document.style
虽然style是存在于document中,但是跳过了element,浏览器是不知道要获取哪个element的style的,因为element不是唯一,不可省略。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询