1.element.getAttribute(attributename)方法用来返回指定属性名的属性值,返回的类型是字符串类型

2.element.getAttributeNode(attributename)方法从当前元素节点(nodeType值为1的节点)element中通过名称获取属性节点(nodeType值为2的节点),返回值是指定的属性节点

3.element.setAttribute(attributename,attributevalue)方法添加指定的属性,并为其赋指定的值。如果这个指定的属性已存在,则仅设置/更改值,无返回值
4.element.setAttributeNode(attributenode)方法用来向元素中添加指定的属性节点。如果这个指定的属性已存在,则此方法会替换它

5.element.removeAttribute(attributename)方法用来删除指定的属性。没有返回值
注意:此方法与 removeAttributeNode() 方法的差异是:removeAttributeNode() 方法删除指定的 Attr 对象,而此方法删除具有指定名称的属性。结果是相同的。同时此方法不返回值,而 removeAttributeNode() 方法返回被删除的属性,以 Attr 对象的形式
6.element.removeAttributeNode(attributenode)方法用来删除指定的属性,并以 Attr Node 对象返回被删除的属性。返回值是Attr类型的对象
7.element.hasAttribute(attributename)方法用来判断如果存在指定属性,则 hasAttribute() 方法返回 true,否则返回 false
8.node.hasAttributes()方法用来判断节点(不仅仅是元素节点element)是否拥有属性,拥有属性则返回true,否则返回false。如果指定节点不是元素节点,则返回值始终是 false。
注意:
**- Node(节点)是DOM层次结构中的任何类型对象的通用名称,Node有很多类型,如元素节点(element),属性节点(attr),文本节点(text),注释节点(comments)等,通过NodeType区分
**- Element继承了Node类,也就是说Element是Node多种类型中的一种,即当NodeType为1时Node即为ElementNode,另外Element扩展了Node,Element拥有id、class、children等属性
**- 简单的说就是Node是一个基类,DOM中的Element,Text和Comment都继承于它。 换句话说,Element,Text和Comment是三种特殊的Node,它们分别叫做ELEMENT_NODE, TEXT_NODE和COMMENT_NODE
那么下面为什么”document.body.childNodes.length”的结果是9呢?

实际上Node表示的是DOM树的结构,在html中,节点与节点之间是可以插入文本的,这个插入的空隙就是TEXT_NODE

这下就顺理成章了,body的直系元素(3)+ COMMENT_NODE(1) + TEXT_NODE(5) = 9
注意:我们用childNodes找到了NodeList,但我们操作DOM时往往不想操作Node(我只想操作元素Element),那么如何获取ElementList呢?其实我们经常使用的getElementsByXXX返回的就是一个ElementList,只不过它的真实名字是ElementCollection。就像NodeList是Node的集合一样,ElementCollection也是Element的集合。但需要特别注意的是:NodeList和ElementCollcetion都不是真正的数组。如果document.getElementsByTagName(‘a’) instanceof Array,那么必然是false。
相关文章:
-
2022-03-07
-
2022-12-23
-
2022-12-23
-
2021-07-09
-
2021-11-16
-
2021-10-21
-
2022-12-23
-
2021-06-07
猜你喜欢
-
2021-07-18
-
2021-12-17
-
2021-07-27
-
2022-02-19
-
2021-10-23
-
2021-05-24
-
2021-06-24
相关资源
-
下载
2023-03-25
-
下载
2021-06-27
-
下载
2021-06-05