最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

详谈javascript中DOM的基本属性_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 21:34:44
文档

详谈javascript中DOM的基本属性_javascript技巧

详谈javascript中DOM的基本属性_javascript技巧:结构和内容属性 nodeType 所有的节点都有类型,节点总共有以下的12种类型。 代码如下: interface Node { // NodeType const unsigned short ELEMENT_NODE = 1; const unsigned short ATTRIBUTE_NODE = 2; const
推荐度:
导读详谈javascript中DOM的基本属性_javascript技巧:结构和内容属性 nodeType 所有的节点都有类型,节点总共有以下的12种类型。 代码如下: interface Node { // NodeType const unsigned short ELEMENT_NODE = 1; const unsigned short ATTRIBUTE_NODE = 2; const
 结构和内容属性

nodeType

所有的节点都有类型,节点总共有以下的12种类型。

代码如下:
interface Node {
// NodeType
const unsigned short ELEMENT_NODE = 1;
const unsigned short ATTRIBUTE_NODE = 2;
const unsigned short TEXT_NODE = 3;
const unsigned short CDATA_SECTION_NODE = 4;
const unsigned short ENTITY_REFERENCE_NODE = 5;
const unsigned short ENTITY_NODE = 6;
const unsigned short PROCESSING_INSTRUCTION_NODE = 7;
const unsigned short COMMENT_NODE = 8;
const unsigned short DOCUMENT_NODE = 9;
const unsigned short DOCUMENT_TYPE_NODE = 10;
const unsigned short DOCUMENT_FRAGMENT_NODE = 11;
const unsigned short NOTATION_NODE = 12;
...
}

其中最重要的两个节点为元素节点(1)和文本节点(3)。其余的很少会用到。
例如,列出所有的子元素节点时,我们可以遍历它,并使用childNodes[i].nodeType != 1来进行检测。
下面是实现代码:

代码如下:

Allowed readers:

  • John

  • Bob




  • var childNodes = document.body.childNodes
    for(var i=0; i if (childNodes[i].nodeType != 1) continue
    alert(childNodes[i])
    }


    *思考
    下面这段代码将提示什么内容:

    代码如下:



    输出document.body的所有的内容并且用新的内容进行替换。

    代码如下:

    The paragraph


    And a div

    alert( document.body.innerHTML ) // read current contents
    document.body.innerHTML = 'Yaaahooo!' // replace contents


    innerHTML会包含一个有效地HTML。但浏览器也可以解析畸形的HTML。
    innerHTML可以在任意一个元素节点中进行使用。它非常非常有用。

    innerHTML pitFalls

    innerHTML不像看起来那么简单。它有一些陷阱在正等待着菜鸟们,甚至有些时候经验丰富的程序员也无法避免。

    IE中__table__节点的innerHTML为只读的
    IE中COL, COLGROUP, FRAMESET, HEAD, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR等元素里innerHTML为只读的。
    IE中的table标签中除了TD其余的标签innerHTML都是只读的。

    innerHTML不能追加
    从语句的构成上来看innerHTML可以进行追加操作,比如:

    chatDiv.innerHTML += "Hi !"
    chatDiv.innerHTML += "How you doing?"
    但是实际上都做了些什么:

    1. 旧的内容被清空

    2. 新的内容被解析,并插入了进去。内容没有被追加,它重新生成了。

    因此,所有的图片和其他的资源当进行+=操作后会重新载入,包括smile.gif。

    幸运的是,有其他的方式来更新内容,这种方式不使用innerHTML,因此没有上面提到的问题。

    nodeValue

    innerHTML只对元素节点有效。
    对于其他类型的节点来说,他们使用nodeValue属性来获取内容。下例将说明它是如何在文本节点和注释节点工作的。

    代码如下:

    The text


    for(var i=0; i alert(document.body.childNodes[i].nodeValue)
    }


    上面的例子中,有些警告为空的,那是因为空白节点的缘故。注意到对于SCRIPT节点中nodeValue === null。那是因为SCRIPT为元素节点。元素节点,要使用innerHTML。

    总结

    nodeType
      节点类型。最重要的是元素节点为1,文本节点为3,只读。
    nodeName/tagName
      大写的标签名。非元素节点来说nodeName还会有特殊的值,只读。
    innerHTML
      元素节点的内容,可写。
    nodeValue
      文本节点的内容,可写。
    DOM节点根据类型,还有其他的一些属性。例如,INPUT标签有value和__checked__属性。A属性有href等等。

    文档

    详谈javascript中DOM的基本属性_javascript技巧

    详谈javascript中DOM的基本属性_javascript技巧:结构和内容属性 nodeType 所有的节点都有类型,节点总共有以下的12种类型。 代码如下: interface Node { // NodeType const unsigned short ELEMENT_NODE = 1; const unsigned short ATTRIBUTE_NODE = 2; const
    推荐度:
    标签: 中的 js javascript
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top