zj8 DOM操作

讲解了 DOM 的元素选取、增删改查、属性的操作

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

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

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

<div class="ct">
     <p>
       123
       <span>456</span>
       <span>789</span>
     </p>
</div>
<script>
    var ct = document.querySelector('.ct');
    function dif(){
        console.log(ct.innerText);//输出123 456 789
        console.log(ct.innerHTML);//输出从<p>到</p>的html结构
    }
</script>

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

elem.children会忽略空白的文本节点,但在IE中包含注释节点
elem.childNodes会将空白的文本节点,也视为对象

//借用上例
console.log(ct.childNodes)//输出类数组对象 [text, p, text]
console.log(ct.children)//输出[p]

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

  • document.getElementsByTagName('')
  • document.getElementsByName('')
  • document.getElementsById('')
  • document.getElementsByClassName('')

ES5的元素选择方法

  • document.querySelector('')//匹配指定的CSS选择器的第一个元素节点
  • document.querySelectorAll('')//匹配指定的CSS选择器的所有节点

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

  • 生成HTML元素节点
    createElement()
var newH1 = document.createElement("h1");
  • 给元素设置属性
    setAttribute()
var node = document.getElementById("header");
node.setAttribute("属性名", "属性值");

//借用例1
ct.setAttribute('id','wrap')//最外层div增加属性  id="wrap"
 
  • 删除属性
    removeAttribute()
node.removeAttribute('class')//删除类名,如果删除id就把括号里面的'class'换成'id'

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

  • appendChild()在元素末尾添加元素
var newDiv=document.createElement('div');//创建一个div元素
var newSpan=document.createElement('span');//创建一个span元素
newDiv.appendChild(newSpan);//将span元素添加到div元素的末尾
  • insertBefore()在某个元素之前插入元素
var newDiv=document.createElement('div');//创建一个div元素
var newSpan=document.createElement('span');//创建一个span元素
newDiv.insertBefore(newSpan, newDiv.firstChild);//将span元素添加到div元素中,并成为div中的第一个元素
  • removeChild()删除子元素
parentNode.removeChild(childNode);
//parentNode和childNode需要被声明
  • replaceChild()替换元素
replaceChild(要插入的元素,要替换的元素)

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

element.classList.contains('class')//判断指定的类名是否存在,返回布尔值
element.classList.add('class1', 'class2', 'class3', ...)//添加一个或多个不存在的类名
element.classList.remove(class1, class2, ...)//删除元素中一个或多个类名。删除不存在的类名,不会报错。
element.classList.item([i])//返回索引值对应的元素类名,在区间范围外则返回 null。
element.classList.toggle('class', true|false)//在元素中切换类名。
//第一个参数为要在元素中删除的类名,删除后返回 false。 如果该类名不存在则会在元素中添加类名,并返回 true。
//第二个是可选参数,用于设置是否强制添加或删除,不管该类名是否存在。

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

<div class="mod-tabs">
   <ul>
       <li>list1</li>
       <li>list2</li>
       <li>list3</li>
   </ul>
   <button class="btn">点我</button>
</div>
选中所有的li元素
document.getelementsByTagName('li')
document.querySelectorAll('.mod-tabs ul li')

选中btn元素
document.getelementsByClassName('btn')
document.querySelector('.btn')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目1: dom对象的innerText和innerHTML有什么区别? innerText是一个可写属性,返回元...
    QQQQQCY阅读 1,443评论 0 0
  • 题目1: dom对象的innerText和innerHTML有什么区别? innerText是一个可写属性,返回元...
    Taaaaaaaurus阅读 1,501评论 0 1
  • 基本介绍 文档对象模型 (DOM) 是HTML和XML文档的编程接口。它给文档(结构树)提供了一个结构化的表述并且...
    草鞋弟阅读 3,414评论 0 0
  • 问答 一、dom对象的innerText和innerHTML有什么区别? innerTextinnerText是一...
    婷楼沐熙阅读 3,101评论 0 0
  • 噢。。。。。 受挫。。。。 吸气。。。。 呼气。。。。
    叮了个冬冬阅读 1,079评论 0 0