js 中的元素类型

2020-12-07  本文已影响0人  沧澈

1.元素特性

每个元素都有一或多个特性,这些特性的用途是给出相应元素或其内容的附加信息。操作特性的DOM方法主要有三个,分别是getAttribute()、setAttribute()和removeAttribute()。

var div = document.getElementById('myDiv');
alert(div.getAttribute('id'));

// 也可以获取自定义属性
<div self-defined="hello"> </div>
alert(div.getAttribute('self-defined'));
div.setAttribute('id','demo')

2.Element类型

特征:

Element类型是使用attributes属性的唯一一个DOM节点类型。attributes属性中包含一个NamedNodeMap,与NodeList类似,也是一个“动态”的集合。元素的每一个特性都由一个Attr节点表示,每个节点都保存在NamedNodeMap对象中。NamedNodeMap对象拥有下列方法。

var id = document.createAttributes.getNamedItem('id').nodeValue;

简化

var ele=document.createAttribute['id'].nodeValue;

attributes属性中包含一系列节点,每个节点的nodeName就是特性的名称,而节点的nodeValue就是特性的值。

var  div=document.createElement(div');

元素可以有任意数目的子节点和后代节点,因为元素可以是其他元素的子节点。元素的childNodes属性中包含了它的所有子节点,这些子节点有可能是元素、文本节点、注释或处理指令。

<ul>
    <li></li>
    <li></li>
    <li></li>
</ul>

如果是IE来解析这些代码,那么<ul>元素会有3个子节点,分别是3个<li>元素。但如果是在其他浏览器中,<ul>元素都会有7个元素,包括3个<li>元素和4个文本节点(表示<li>元素之间的空白符)。

这意味着在执行某项操作以前,通常都要先检查一下nodeTpye属性.

 for (let i = 0; i < ele.length; i++) {
      if (ele[i].nodeType == 1) {
            // 执行代码
      }
 }

3. Text类型

特征:

文本节点由Text类型表示,包含的是可以照字面解释的纯文本内容。纯文本中可以包含转义后的HTML字符,但不能包含HTML代码。

除了这些方法之外,文本节点还有一个length属性,保存着节点中字符的数目。而且,nodeValue.length和data.length中也保存着同样的值。

操作方法:

-splitText():将一个文本节点分成两个文本节点,即按照指定的位置分割nodeValue值

4.Comment类型

特征:

Comment类型与Text类型继承自相同的基类,因此它拥有除splitText()之外的所有字符串操作方法。与Text类型相似,也可以通过nodeValue或data属性来取得注释的内容。

上一篇下一篇

猜你喜欢

热点阅读