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

温馨提示:内容为网友见解,仅供参考
无其他回答

js的document.getelementsbytagname一定要有document吗
必须要,该语句完整写法是:window.document.getElementByTagName(tagName)其中,所有元素的最上级都是window,所以window是可以省略的。举个例子,就比如alert:alert(alertString);window.alert(alertString);以上两行是完全相同的。然而document是不可省略的,因为getElementByTagName函数获取的是整个页面的全...

js使用getElementsByTagName报错怎么办?
getElementsByTagName是document的方法,只能通过document调用。如果你只是想要取得DOM中指定标签名的对象的集合的话document.getElementsByTagName就足够了。拓展:1、JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广...

JS获取HTML DOM元素的方法
3. 通过标签名获取元素(getElementsByTagName):使用document.getElementsByTagName('p')或某个元素的getElementsByTagName方法,参数为标签名,返回类数组,未找到返回空数组。注意,获取结果为类数组,上下文可为document或元素,不区分大小写。4. 通过类名获取元素(getElementsByClassName):使用document....

javascript 识别陌生标签的问题 请js高手帮下忙 行了就加分
alert(document.getElementsByTagName('main')[0].childNodes[0].nodeValue);不过,我在html里没见过有main、item标签,不会是xml的吧,如果是的话应该没问题,childNodes是子节点集合,[0]是下标,0代表第一个元素,以此类推,nodeValue是文本节点值,如果这样成对的文档节点可以用innerHTML取值;我看的...

javascript 里面的 getElementsByTagName() 是怎么用的?
getElementsByTagName() 是获取标签的,比如一个页面里有多个input标签,getElementsByTagName(‘input’)可以获取所有input元素,返回的结果是一个数组,可以使用索引数组来标记。比如:var input=getElementsByTagName(‘input’);input就是获取了所有input元素的数组,可以通过input[0],input[1]……这样来...

find_elements_by_class_name 如何查询子标签?
楼主是要做一个找工作的爬虫吗?使用js的话,document.getElementsByTagName('span')你会得到一个包含所有span的数组,使用document.getElementsByTagName('span')[1]得到第二个span,最后取一下内容就可以了document.getElementsByTagName('span')[1].innerText selenium应该也差不多,可以通过tagname来...

document.body.getElementsByTagName("iframe") 提示找不着对象_百度知...
iframe通过名字直接用就行,它是窗口,它不属于document,自然找不到。--- 遍历吧,frames[i]...

JS中获取表现的问题name和tagname
getElementsByName是根据标签的name属性来拿的 getElementsByTagName是根据标签名来拿 getElementsByName()这个是通过NAME来获得元素,但不知大家注意没有,这个是GET ELEMENTS,复数ELEMENTS代表获得的不是一个元素,为什么呢?因为DOCUMENT中每一个元素的ID是唯一的,但NAME却可以重复。打个比喻就像人的身份...

javascript 里面的 getElementsByTagName() 是怎么用的?
tagname是标签名, 例如的tagname是 "a", 的tagname是 "div".getElementsByTagName是获取对象中所有tagname为指定值的元素, 返回值为所获得元素组成的数组.例子 (获得所有div元素的innerHTML):div 1 div 2 var divs = document.getElementsByTagName("div");for (var i = 0, len = divs...

js获取不含指定类名的元素
1、通过元素的ID去拿元素,获取的是一个指定的元素(getElementById)。2、通过元素的类名(class名)获取元素,获取的是一组元素集合(getElementsByClassName)。3、通过元素的标签名获取(tagName),获取元素跟类名获取的一样,都是一组元素集合(getElementsByTagName)。4、通过name属性(getElements...

相似回答