dom的节点(DOM-元素节点属性)(1)

元素节点属性

childNodes和firstChild和lastChild

1.childNodes //获取当前元素节点的所有的子节点

举个小例子:

dom的节点(DOM-元素节点属性)(2)

运行结果返回了一个节点列表:

dom的节点(DOM-元素节点属性)(3)

节点列表是装有当前元素节点所有的子节点

dom的节点(DOM-元素节点属性)(4)

我们可以看一下当前节点列表的长度:

dom的节点(DOM-元素节点属性)(5)

运行结果为3:

dom的节点(DOM-元素节点属性)(6)

这三个元素节点分别就是em、strong和文本内容

dom的节点(DOM-元素节点属性)(7)

这时候就要涉及到我们之前学的DOM节点的三种类型

元素节点 文本节点 属性节点

这三个节点又有三个非常重要的属性:

分别为:nodeNamenodeTypenodeValue

对于这三个属性不同节点类型转换出来的效果不一样

例如:document.getElementById(‘box’).nodeType; //返回1就为元素节点

★★★

dom的节点(DOM-元素节点属性)(8)

childNodes包括的节点有元素节点文本节点两种

举个小例子:

dom的节点(DOM-元素节点属性)(9)

运行结果对应上面表应该为节点名称em,1和null

dom的节点(DOM-元素节点属性)(10)

dom的节点(DOM-元素节点属性)(11)

dom的节点(DOM-元素节点属性)(12)

同样我们再来看一下文本节点:

dom的节点(DOM-元素节点属性)(13)

运行结果为#text、3和文本内容

dom的节点(DOM-元素节点属性)(14)

dom的节点(DOM-元素节点属性)(15)

dom的节点(DOM-元素节点属性)(16)

dom的节点(DOM-元素节点属性)(17)

2.firstChild和lastChild //找到当前元素节点的首位和末位

举个小例子:

dom的节点(DOM-元素节点属性)(18)

运行结果为EM和strong

dom的节点(DOM-元素节点属性)(19)

dom的节点(DOM-元素节点属性)(20)

以上就是元素节点属性的方法

dom的节点(DOM-元素节点属性)(21)

删除空白节点

我们还是拿上面的例子来看:

dom的节点(DOM-元素节点属性)(22)

运行结果如下:

dom的节点(DOM-元素节点属性)(23)

dom的节点(DOM-元素节点属性)(24)

那么为什么我们改变div的书写格式后,会显示出5个元素节点呢?

我们来分析一下这5个节点:

1.div到em的空白

2.em

3.文本内容

4.strong

5.strong到div的空白

我们去给它进行回车、换行、tab键、空格等,它里面的元素节点就会有变化

因为我们不需要这些空白节点,我们如何将这些空白节点给去除呢?

在我们去除空白节点之前,先要识别空白节点

通过正则表达式来识别空白节点,这里先给大家写一下这次用到的正则表达式,后面会详细讲到。

/^\s $/.test()

使用这个正则来进行验证,如果符合返回true,否则返回false

我们先来验证一下:

dom的节点(DOM-元素节点属性)(25)

运行结果如下,空格时为true,有字符时为false:

dom的节点(DOM-元素节点属性)(26)

dom的节点(DOM-元素节点属性)(27)

我们这样就可以封装一个函数来进行删除空白节点:

dom的节点(DOM-元素节点属性)(28)

运行结果为:

dom的节点(DOM-元素节点属性)(29)

dom的节点(DOM-元素节点属性)(30)

我们来返回一下文本类型nodeType未删除之前和删除之后分别有几个:

dom的节点(DOM-元素节点属性)(31)

运行结果未删之前为3,删除之后为1如下:

dom的节点(DOM-元素节点属性)(32)

dom的节点(DOM-元素节点属性)(33)

从这里也可以看出,多出来的两个元素节点的类型为文本

dom的节点(DOM-元素节点属性)(34)

但是我们上面的正则表达式 /^s $/.test() 它原来数据上的子节点并没有发生变化,只是在调用函数时有效果,空白节点还依然存在。

对于这种情况我们就需要firstChildlastChild这两个

因为这两种方法必须从父节点上删除空白节点,这时候就需要我们重新去封装函数

dom的节点(DOM-元素节点属性)(35)

运行结果如下:

dom的节点(DOM-元素节点属性)(36)

dom的节点(DOM-元素节点属性)(37)

首先它的数量变为了3,它的firstChild变为了EM

注意:

这里删除数组元素的时候必须要倒叙删除!正着删除会混乱。

dom的节点(DOM-元素节点属性)(38)

- 写作不易,大家多多关注,谢谢啦-

---web分享,分享的不只是web

,