DOM操作

作者: _达斯基 | 来源:发表于2017-10-17 23:20 被阅读0次

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

innerText对应的是文本节点,innerHTML对应的就直接是相应的html语句。也就是说,你向innerText里面的插入的任何文字都会被解析为普通文字展示,而你向innerHTML里面插入的任何内容都会被当做html语句解析运行。

2elem.children和elem.childNodes的区别?

children是子元素(HTMLCollection),只包含子HTML节点
childNodes是子元素列表(NodeList),包含HTML节点,文本节点,属性节点

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

document.getElementById(‘id’);
document.getElementsByTagName(‘tagName’);
document.getElementsByClassName(‘className’);
  • ES5
  1. querySelector()返回匹配指定的CSS选择器的元素节点。如果有多个节点满足匹配条件,则返回第一个匹配的节点。如果没有发现匹配的节点,则返回null。无法选中CSS伪元素。
  2. querySelectorAll()返回匹配指定的CSS选择器的所有节点,返回的是NodeList类型的对象。NodeList对象不是动态集合,所以元素节点的变化无法实时反映在返回结果中。参数可以是逗号分隔的多个CSS选择器,返回所有匹配其中一个选择器的元素

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

创建
  • createElement方法用来生成HTML元素节点。
  • createTextNode方法用来生成文本节点,参数为所要生成的文本节点的内容。
  • createDocumentFragment方法生成一个DocumentFragment对象。
设置属性

setAttribute()方法用于设置元素属性

删除

removeAttribute()方法用于设置元素属性

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

  • 添加子元素

appendChild在元素末尾添加元素
insertBefore在某个元素之前插入元素

  • 删除子元素

removeChild()用于删除子元素

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

var nodeBox = document.querySelector('.box')
console.log( nodeBox.classList )
nodeBox.classList.add('active') //新增 class
nodeBox.classList.remove('active') //删除 class
nodeBox.classList.toggle('active') //新增/删除切换
node.classList.contains('active') // 判断是否拥有 class

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

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

<scirpt> 
var selectorLi = document.querySelectorAll('.mod-tabs li')
var selectorBtn = document.querySelector('.mod-tabs .btn')
</scirpt>

相关文章

网友评论

      本文标题:DOM操作

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