美文网首页
一些DOM小操作

一些DOM小操作

作者: 怎么昵称 | 来源:发表于2017-08-04 18:59 被阅读0次

    题目1: dom对象的innerText和innerHTML有什么区别?

    innerText是一个可写属性,返回元素内包含的文本内容,在多层次的时候会按照元素由浅到深的顺序拼接其内容。

    innerText 从起始位置到终止位置的内容, html标签都被转义后保存.

    简单场景:如果输入框中有标签的话,可以用innerText转义,获取内容

    innerHTML属性作用和innerText类似,但是不是返回元素的文本内容,而是返回元素的HTML结构,在写入的时候也会自动构建DOM。

    innerHTML 获取从对象的起始位置到终止位置的全部内容,包括Html标签

    参考文

    题目2: elem.children和elem.childNodes的区别?

    children是Element的属性,childNodes是Node的属性,

    1. children:
      非标准的,它返回指定元素的子元素集合。经测试,它只返回HTML节点,甚至不返回文本节点
     <div id="open">
        <h1>这是一张图</h1>
        <img src="" alt="img">
        <button>open</button>
      </div>
      
    var open= document.getElementById('open');
    var d=open.children;
    for(var i=0; i<d.length;i++){
         console.log(d[i])
    }
    输出:
     <h1>​这是一张图​</h1>​
    <img src="" alt=​"img">​
     <button>​open​</button>​
    
    1. childNodes:
      标准的,返回指定元素的子元素集合,包括HTML属性,所有属性,文本。可以通过nodeType来判断是哪v 种类型的节点
    var open= document.getElementById('open');
    var d=open.childNodes;
        for(var i=0; i<d.length; i++){
             console.log(d[i])      
        }
    
     <h1>​这是一张图​</h1>​
    "hfhfhfhdhjshdfkshfksh"
     <img src(unknown) alt=​"img">​
     <button>​open​</button>​
    
    节点类型 NodeType
    元素element 1
    属性attr 2
    文本text 3
    注释comments 8
    文档document 9

    补充:
     Node(节点)是DOM层次结构中的任何类型的对象的通用名称,Node有很多类型,如元素节点,属性节点,文本节点,注释节点等,通过NodeType区分,常见的有:

    节点类型 NodeType
    元素element 1
    属性attr 2
    文本text 3
    注释comments 8
    文档document 9

    题目3:查询元素有几种常见的方法?ES5的元素选择方法是什么?

    document.getElementById()//返回特定的id名的元素
    document.getElementByClassName() //返回文档中所有指定类名的元素集合,作为 NodeList 对象。
    document.getElementByTagName()//获取所有指定标签的元素
    document.getElementByName()//获取所有指定name属性值的元素

    ES5 元素选择方式:

    document.querySelector() //返回匹配指定条件的第一个元素,,

    document.querySelectorAll()//返回符合指定条件的所有元素,得到一个NodeList对象

    题目4:如何创建一个元素?如何给元素设置属性?如何删除属性

    var node= document.createElement(' 标签名称 ');//创建一个html节点

    node.setAtrribute('属性名','设置的属性值') //设置属性

    node.removeAtrribute('属性名')

    题目5:如何给页面元素添加子元素?如何删除页面元素下的子元素?

    <div id="open">
       <h1>这是一张图</h1>
       <button>open</button>
     </div>
    
    //div末尾添加一个p标签
    var node = document.querySelector('div')//现获取要添加元素的标签
    var p= document.createElement('p');//创建一个新的段落元素
     node.appendChild(p)  //添加子元素
    
    输出结果:
    <div id="open">
       <h1>这是一张图</h1>
       <button>open</button>
       <p></p>  
     </div>
    

    删除子元素过程:

    var node= document.querySelector(div)  //获取要删除子元素的元素
    var p= document.getElementByTagName(p)  // 获取删除的元素
    node.removeChild(p)  // 删除操作
    

    题目6: element.classList有哪些方法?如何判断一个元素的 class 列表中是包含某个 class?如何添加一个class?如何删除一个class?

    var img= document.querySelector('images');

    img.classList() //查看img元素的类名,返回一个数组
    img.classList.add('active') //添加类名
    img.classList.remove('active') //删除类名
    img.classList.contains('active')//是否包含active类名,返回true ,则是包含, 返回false,为不包含

    题目7: 如何选中如下代码所有的li元素? 如何选中btn元素?

    <div class="mod-tabs">
    <ul>
    <li>list1</li>
    <li>list2</li>
    <li>list3</li>
    </ul>
    <button class="btn">点我</button>
    </div>

    注意: querySelectorAll('参数') //要求参数是字符串

    var list= document.querySelectorAll('li') //获取所有li
    console.log(list)

    var btn1=document.getElementByClaaName('btn')
    console.log(btn1)

    相关文章

      网友评论

          本文标题:一些DOM小操作

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