js--DOM--笔记(四)

       节点

        nodeType        节点类型        1---标签                         2---属性                      3---文本

        nodeName      节点名            大写标签名---标签        小写属性名--属性        #text--文本

        nodeValue       节点值            null---标签                    属性值--属性               文本内容--文本

        获取元素、节点

        parentNode     父节点            parentElement             父元素        (一般来说这两个返回的都是同一个节点)

        childNodes        子节点            children                       子元素        (返回的都是伪数组)

        第一个子节点        firstChild                                        第一个子元素        firstElementChild

        最后一个子节点     lastChild                                        最后一个子元素    lastElementChild

        前一个节点        previousSibling                                  前一个元素           previousElementSibling

        后一个节点        nextSibling                                         后一个元素           nextElementSibling

        注意:IE8及IE8以下,关于子节点的或者前后节点的,获取得到的是元素,而关于元素的都不支持(例如firstChild获取得到的是第一个子元素)

        兼容性下一章再写;

        ele.appendChild(node)                              在该元素/节点末尾添加一个节点

        ele.insertBefore(newnode,node)            在某个元素(node)前添加节点(newnode),如果node为null则在最后添加

        ele.removeChild(node)                              移除节点

        ele.replaceChild(newnode,node)            替换节点

        ele.cloneNode(boolean)                            复制节点,boolean为true则深复制(整个节点树),而为false则浅复制(只                                                                                   复制节点本身)

        document.documentElement                           获取<html>元素

        document.body                                                获取<body>元素

        document.title        document.URL==>http://www.baidu.com/mytest/        document.domain==>www.baidu.com

        document.getElementById(id);                       

        根据id获取元素(注意:如果表单元素中的name属性与一个div的id一致时,如果通过getElementById想要获取这个div元素,但是返回的却是该表单元素)

        document.getElementByTagName("标签名");                        根据标签名获取元素集合,返回的是伪数组(* 表示全部)

        document.getElementsByName("属性名");                            根据name属性获取元素集合

        document.getElementsByClassName("类名")                        根据类名获取元素集合

        document.write(...)                                                                  写入文档,如果是文档加载结束后再调用,会覆盖整个文档

        ele.getAttribute("属性名")                                                        获取该元素的属性值(不存在返回null)

        ele.setAttribute("属性名",“值”)                                             设置该元素的属性值

        ele.removeAttribute("属性名")                                                 删除该元素中的这个属性

        创建元素:var ele= document.createElement("元素名");        document.body.appendChild(ele);// 添加到某个元素中

        创建文本节点:var textNode = document.createTextNode(str);        ele.appendChild(textNode);

        如果动态的创建了两个文本节点,ele.childNodes.length = 2;调用了ele.normalize(),会将一个或多个文本节点合并

        分割文本节点:var newNode = ele.splitText(5);// 从索引为5,切开文本,分成两个文本节点

        DOM扩展

        querySelector(css选择符);    返回匹配到的第一个元素,匹配不到返回null

        querySelectorAll(css选择符);    与querySelector一样,只是获取的是全部而不是第一个

        matchesSelector(css选择符);    调用该方法与选择符一致则返回true

        Firefox--mozMatchesSelector();         Safari和Chrome--webkitMatchesSelector();     IE9+--msMatchesSelector();

        (IE9+)

        childElementCount     返回子元素个数(不包括文本,注释)

        firstElementChild     返回第一个子元素(firstChild元素版)

        lastElementChild     返回最后一个子元素

        previousElementSibling    返回前一个兄弟元素

        nextElementSibling    返回后一个兄弟元素

       

        H5相关

        getElementByClassName()     返回该类名的所有元素集合(NodeList)

        classList.add()    添加类     classList.remove   删除类    classList.toggle   切换类     classList.contains    是否包含该类

        classList只有Firefox3.6+和Chrome支持

        document.activeElement   获取当前焦点元素,默认document.body,文档加载时是null

        document.hasFocus()   判断文档(任何元素)是否获取焦点

        document.readyState==>  loading:文档正在加载   ;    complete:文档加载完成

        documnet.head   获取<head>元素   (只有Chrome和Safari5支持)

        document.charset   获取/修改UTF-8

        设置自定义数据属性要加前缀data  获取用dataset(只有Firefox6+和Chrome支持)

        例如:<div data-user = "aa" data-pwd = "123" ></div>

        获取属性:var div = document.getElementByTagName("div")[0];

                          var user = div.data.user;

                          div.data.pwd="000";

        innerHTML   设置/获取文本或HTML标签(<script>标签只有IE8及以下在特点情况下执行)

        outerHTML   获取的是元素自身及其所以子节点的HTML标签,设置的话  例如:div.outerHTML = "<p>haha</p>";

                             就是将整个div换成这个p标签(也就是这个div没了,换成了p)

        ele.insertAdjacentHTML("beforebegin","<p>haha</p>");   // 作为前一个兄弟插入

        ele.insertAdjacentHTML("afterbegin","<p>haha</p>");   // 作为第一个子元素插入

        ele.insertAdjacentHTML("beforeend,"<p>haha</p>");   // 作为最后一个子元素插入

        ele.insertAdjacentHTML("afterbegin","<p>haha</p>");   // 作为后一个兄弟插入

        element.scrollIntoView(boolean);   参数为true,页面(或容器)发生滚动,使element的顶部与视图(容器)顶部对齐;

                                                                  参数为false时,使element的底部与视图(容器)底部对齐。

        这里可以参考https://blog.csdn.net/hyl94/article/details/77472154

        ele.contains(node)  判断该元素是否有这个(node)后代Firefox9+,其他浏览器都支持

猜你喜欢

转载自blog.csdn.net/Yi_xuan_sky/article/details/81584479
今日推荐