js的document.getelementsbytagname一定要有document吗

 我来答
悄悄de爱上
2017-09-06 · TA获得超过2050个赞
知道小有建树答主
回答量:597
采纳率:66%
帮助的人:341万
展开全部

必须要,该语句完整写法是:

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不是唯一,不可省略。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式