美文网首页
DOM中元素获取方式以及节点的应用

DOM中元素获取方式以及节点的应用

作者: 该不会是个傻子吧 | 来源:发表于2017-07-14 00:33 被阅读0次

DOM中元素获取的方式

(DOM:document object model)

  • id获取 :document.getElementById('div')
    • id获取只能document
  • class获取:document.getElementsByClassName('p')
  • tagName:可以限定范围的获取元素
  • querySelect
    • querySelector() 方法仅仅返回匹配指定选择器的第一个元素。如果你需要返回所有的元素,请使用 querySelectorAll() 方法替代。
    • var oDiv=document.querySelector('div');
    • var oDiv=document.querySelector('#divId');
    • var oDiv=document.querySelector('.divClass');
  • querySelecortAll;
    • querySelectorAll获取到的是一组元素
querySelector.png

节点

nodeType nodeName nodeValue
文本节点 3 "#text" 文本内容
元素节点 1 大写的标签名 null
注释节点 8 #comment 注释内容
document节点 9 #document null

节点关系

  • children 它返回指定元素的子元素集合。经测试,它只返回html节点
    • 一般情况兼容,在IE7/8下如果有注释,拿到的会包含注释
  • childNodes 它返回指定元素的所有子元素集合,包括html节点,所有属性,文本。可以通过nodeType来判断是哪种类型的节点,只有当nodeType==1时才是元素节点,2是属性节点,3是文本节点。
children与childNodes.png
  • parentNode 返回某节点的父节点。
    如果指定的节点没有父节点则返回 null 。
  • previousSibling 上一个哥哥节点
    previousSibling属性返回元素节点之前的兄弟节点(包括文本节点、注释节点);
    previousElementSibling属性只返回元素节点之前的兄弟元素节点(不包括文本节点、注释节点) 高级浏览器支持
  • nextSibling 下一个弟弟节点

封装

  • getChildren 获取当前容器下所有的子元素
       function getChildren(parent,tagName) {
        var aChild=parent.childNodes;
        var ary=[];
        for(var i=0 ;i<aChild.length;i++){
            if(aChild[i].nodeType==1){
                tagName?aChild[i].tagName.toLowerCase()==tagName.toLowerCase()&&ary.push(aChild[i]):ary.push(aChild[i]);
            }
        }
        return ary;
    }

获取上一个哥哥元素

    function pre(ele) {
        if(ele.previousElementSibling){
            return ele.previousElementSibling;
        }
        var prev=ele.previousSibling;
        while(prev && prev.nodeType==1){
            prev=prev.previousSibling;
        }
    }

获取所有的弟弟元素

    function prev(curEle){
        if(curEle.previousElementSibling){
            return curEle.previousElementSibling;
        }
        var pre=curEle.previousSibling;
        while(pre && pre.nodeType !== 1){
            pre=pre.previousSibling;
        }
        return pre;
    }
    function nextAll(ele) {
        var ary=[];
        var nex=next(ele);
        while(nex){
            ary.push(nex);
            nex=next(ele);
        }
        return ary;
    }

相关文章

  • DOM中元素获取方式以及节点的应用

    DOM中元素获取的方式 (DOM:document object model) id获取 :document.ge...

  • 【JavaScript】你真的了解节点操作吗?

    ?节点操作 我们获取元素通常有两种方式: 利用DOM提供的方法获取元素 和 利用节点层级关系获取元素前者逻辑性不强...

  • jS|DOM操作

    DOM节点的获取 DOM节点的创建 DOM节点删除 修改DOM元素 将指定两个DOM元素交换位置

  • 网络编程(二十一) JavaScript(11)

    一、 节点操作 1.1 为什么学习节点操作 获取元素通常使用两种方式:【1】利用DOM提供的方法获取元素 docu...

  • DOM的学习顺序

    1.DOM元素之间的关系 2.获取DOM元素 3.DOM节点的type、tag、content 4.DOM节点的a...

  • Vue之ref的使用

    1.基本用法,本页获取Dom元素节点 ref除了可以获取本页面的dom元素,还可以拿到 子组件中 的data 和 ...

  • 节点操作--父子节点

    学习节点操作的目的还是为了获取元素,获取元素的常用 两种方式:1.利用DOM提供的方法(API)获取元素例如:do...

  • DOM笔记

    DOM笔记获取元素获取指定元素获取子元素&兄弟元素&父元素获取第一&最后一个子元素节点操作克隆节点 - clone...

  • Dom基础1

    DOM基础 DOM简介、DOM标准、DOM节点 获取元素的子节点:childNodes、兼容性问题火狐不兼容,可以...

  • Vue 组件

    全局组件引入 局部组件引入 ref获取dom节点、获取组件引用 ref在html元素获取的是dom节点ref在组件...

网友评论

      本文标题:DOM中元素获取方式以及节点的应用

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