您好,HTML5规范文档中指出:如果一个元素符合下面两条规则中的任一条,则window对象中必须要有与之对应的一个属性,属性值就是这个对象
如果一个元素拥有ID属性,那么ID属性的属性值就会成为window对象的属性名
如果一个元素拥有name属性,那么name属性的属性值就会成为window对象的属性名但这个元素的标签名必须是: a, applet, area, embed, form, frame, frameset, iframe, img, object,其中的一个。
> "foo" in window
false
> typeof foo // 这个全局变量到底有木有
object
//错误控制台输出了下面的警告//Element referenced by ID/NAME in the global scope
//Use W3C standard documentgetElementById() instead
> foo
[object HTMLDivElement]
//错误控制台输出了下面的警告//Element referenced by ID/NAME in the global scope
//Use W3C standard documentgetElementById() instead> "foo" in window true
因为id是具有唯一性的,就好比身份z号码,一个id只能代表一个子元素,所以用 getElementById 方法可以立刻找到指定的子元素。
而类则不是唯一的,就比如“学生”是一个类,它代表的是一大群人,所以用 getElementsByClassName 方法返回的是一个对象集合而不是单个对象(即使类下面只有一个子元素),因此必须改成 getElementsByClassName('bt')[0]children
其实你只要够聪明,你就能从 getElementsByClassName 最中间的那个s想到原因了(s代表复数),而 getElementById 是没有s的!
//通过documentgetElementsByTagName获取input元素。inputs=documentgetElementsByTagName("input")[0];//通过元素的属性获取值var names=inputsname, ids=inputsid;
js获取元素方法有:
1、getElementById :根据指定的 id 属性值得到对象。返回 id 属性值等于 sID 的第一个对象的引用。假如对应的为一组对象,则返回该组对象中的第一个。
2、getElementsByName:getElementsByName(name)该方法与 getElementById() 方法相似,但是它查询元素的 name 属性,而不是 id 属性。
另外,因为一个文档中的 name 属性可能不唯一(如 HTML 表单中的单选按钮通常具有相同的 name 属性),所以getElementsByName() 方法返回的是所有匹配元素组成的数组,而不是一个元素。
3、getElementsByTagName:getElementsByTagName() 方法会使用指定的标签名返回所有的元素(作为一个节点列表),这些元素是您在使用此方法时所处的元素的后代。
getElementsByTagName() 可被用于任何的 HTML 元素
如果把特殊字符串 "" 传递给 getElementsByTagName() 方法,它将返回文档中所有元素的列表,元素排列的顺序就是它们在文档中的顺序。
传递给 getElementsByTagName() 方法的字符串可以不区分大小写。
以上就是关于js获取已知id的DOM元素全部的内容,包括:js获取已知id的DOM元素、js为什么根据id就可以找到容器里的子元素,而根据类名就找不到、js怎么通过id获取input的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)