DOM自定义元素属性与节点的操作以及元素的创建

元素自定义属性的获取、设置和移除

节点

认识节点

  • html文档中所有的内容都叫节点 |nodeType |节点的类型 | | -----| ---- | |1 |元素节点| |2 |属性节点| |3 |文本节点|

  • nodeName 节点的名称(标签名称)

  • nodeValue 节点值

  • 元素节点的nodeValue始终是null +当一个标签中有很多相同标签的时候可以直接通过getElementByTagName来获取,但是如果都是不同的标签该如何获取?

    • 通过获取节点的方式更方便
  • 文档(Document):就是指HTML或者XML文件

  • 节点(Node):HTML文档中的所有内容都可以称之为节点(元素,文本,属性)

  • 元素(Element):HTML文档中的标签可以称为元素,元素称为对象

  • 文档元素(根元素):文档中的第一个元素,HTML文档元素就是<html>

节点的层次

  • 父节点 parentNode

  • 子节点

    • childNodes IE8中会忽略空白节点,
    • children 返回元素节点非标准的dom方法,所有浏览器都支持,但是只获取元素节点
  • 兄弟节点 nextSibling,previousSibling

  • 第一个和最后一个子节点 firstChild,lastChild

  • 注意:firstElementChild,lastElementChild,previousElementSibling,nextElementSibling这些IE8不支持,这里可以写能力检测兼容代码,如果还不懂什么是能力检测兼容,可以参考一下我的另一篇博客:DOM能力检测兼容

设置、获取样式的方式

设置样式

  • className
  • style(也是对象)

获取样式

  • DOM的style属性只能获取标签中使用style设置的样式,无法获取嵌入或外部样式
  • style.cssText 获取style里面的字符串
  • 注意
    • style点出来的属性都是字符串类型
    • 能获取标签中的style的样式,不能获取嵌入和外部样式
    • 在style标签中设置样式的时候.有些属性是多个单词组合中间用-连接,但是在js中通过style.属性设置样式的时候,属性的名字如果是多个单词组合去掉-,后面的单词首字母大写即可.

动态创建元素

  • 方式一
    • document.write("字符串类型的标签拼接");
    • 缺点:会把页面中所有的内容替换掉
  • 方式二
    • 对象元素.innerHTML="字符串类型的标签拼接";
  • 方式三
    • document.createElement("标签名字");
    • appendChild(),removeChild(),insertBefore(),replaceChild()
  • 试一试 - 点击按钮动态创建表格(使用方式二和方式三其中一种)

注意点

  • cloneNode(true):获取所有的标签,false为只获取当前的标签。克隆后的返回值不是一个数组,而是某一个特定的节点。
  • appendChild:添加元素的子元素
  • 元素节点的值nodeValue是null,文本节点的名字是#text
  • nodeType(节点:元素节点,属性节点,文本节点)
  • nodeName:注意:文本节点的名字是#text
  • nodeValue:注意:元素节点的值是null
  • IE 8中忽略了空白节点,不支持firstElementChild
  • <a href="javascript:void(0)"></a>超链接不跳转

这些属性你懂了吗?

转载于:https://my.oschina.net/yxmBetter/blog/829624

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值