美文网首页
JS 核心之 DOM

JS 核心之 DOM

作者: 凉城十月 | 来源:发表于2020-08-05 11:05 被阅读0次

    DOM是一棵树(tree)树上有Node。
    Node分为Document ( html ),Element(元素)和Text(文本)。以及其他不重要的。

    1.Node接口

    1.属性

    childNodes:子节点,返回的是一个伪数组
    firstChild:第一个孩子
    innerText:获取内容所有文本
    lastChild:最后一个孩子
    nextSibling:兄弟节点
    nodeName:节点名称,返回的都是**大写**,除了**svg**
    nodeType:节点类型
    nodeValue:属性返回或设置当前节点的值
    outerText:设置(包括标签)或获取(不包括标签)对象的文本
    ownerDocument:返回某元素的根元素
    parentElement:父元素
    parentNode:父节点
    previousSibling:上一个兄弟节点
    textContent:获取所有内容,包括<script>和<style>标签的内容
    

    如果记不住就背下以下单词:

        child / children / parent
        node
        first / last
        next / previous
        sibling / siblings
        type
        value / text / content
        inner / outer
        element
        然后互相组合
    

    2.方法(函数属性)

     + appendChild():向标签中插入子节点
     + cloneNode(deep):传进去一个参数deep,默认不传,就为false,浅拷贝。true为深拷贝。深拷贝递归的复制所有子节点。
     + contains():包含
     + hasChildNodes():有子节点
     + insertBefore():在指定的已有子节点之前插入新的子节点
     + isEqualNode():相等,两个东西相等
     + isSameNode():相同,同一个东西。
     + removeChild():移除子节点
     + replaceChild():替换子节点
     + normalize() : 常规化。比如存在两个一样的文本节点,就可以合并成一个
    

    插入文本的方法:
    html:<div id=”div1”></div>

    1. div1.innerText = ‘hello world’,如果div中本来存在一个标签,里面存在文本会被替换。不好。
      2.div1.appendChild( document.createTextNode(‘hello world’))不会被替换,因为只是插入一个新节点。

    2.Document接口

    1.属性

    anchors:获取页面中的所有a标签,已弃用,只返回拥有name属性的a标签,不返回拥有id的a标签。
    body:body标签
    characterSet:设置字体
    childElementCount:子元素数量
    children:子元素
    doctype:文本类型
    documentElement:document.documentElement就是html元素
    domain:管理员
    fullscreen:全屏
    head:head标签
    hidden:隐藏
    images:图片
    links:链接
    location:
    onxxxxxxxxx
    origin
    plugins
    readyState
    referrer
    scripts
    scrollingElement
    styleSheets
    title
    visibilityState
    

    相关文章

      网友评论

          本文标题:JS 核心之 DOM

          本文链接:https://www.haomeiwen.com/subject/aacnrktx.html