题目1: dom对象的innerText和innerHTML有什么区别?
- innerText 是一个可写属性,返回元素内包含的文本内容,在多层次的时候会按照元素由浅到深的顺序拼接其内容
<div>
<p>
123
<span>456</span>
</p>
</div>
外层div的innerText返回内容是'123456'
- innerHTML属性作用和innerText类似,但是不是返回元素的文本内容,而是返回元素的HTML结构,在写入的时候也会自动构建DOM
<div>
<p>
123
<span>456</span>
</p>
</div>
外层div的innerHTML返回内容是“<p>123<span>456</span></p>"
题目2: elem.children和elem.childNodes的区别?
- elem.children 只返回HTML元素节点
- elem.childNodes 返回所有的子节点,包括HTML元素,属性,文本
题目3:查询元素有几种常见的方法?ES5的元素选择方法是什么?
- 常见方法有
getElementById(),
getElementsByClassName(),
getElementsByTagName(),
getElementsByName() - ES5的元素选择方法
- querySelector方法返回匹配指定的CSS选择器的元素节点。如果有多个节点满足匹配条件,则返回第一个匹配的节点
- querySelectorAll()querySelectorAll方法返回匹配指定的CSS选择器的所有节点,返回的是NodeList类型的对象
题目4:如何创建一个元素?如何给元素设置属性?如何删除属性
- 创建元素 createElement()
- 设置属性 setAttribute()
- 删除属性 removeAttribute()
题目5:如何给页面元素添加子元素?如何删除页面元素下的子元素?
- 添加子元素 ,添加到元素的末尾 appendChild()
- 删除页面下的子元素 removeChild()
题目6: element.classList有哪些方法?如何判断一个元素的 class 列表中是包含某个 class?如何添加一个class?如何删除一个class?
element.classList得到一个数组
-
item(Number)
按集合中的索引返回类值 -
toggle(String)
当只有一个参数时,切换class value;即如果存在类,则删除它并返回false,如果不存在,则添加它并返回true;当存在第二个参数时:如果第二个参数的计算结果为true,则添加指定的类值,如果计算结果为false,则删除它 - 判断包含某个class
element.classList.contain('title')
- 添加class
element.classList.add('active')
- 删除class
element.classList.remove('active')
var title = document.querySelector('.title')
title.childList.add('active')
title.childList.remove('active')
title.childList.contains('title')//true
题目7: 如何选中如下代码所有的li元素? 如何选中btn元素?
<div class="mod-tabs">
<ul>
<li>list1</li>
<li>list2</li>
<li>list3</li>
</ul>
<button class="btn">点我</button>
</div>
var oLi = document.querySelectorAll(".mod-tabs li");
var aBtn = document.querySelector(".mod-tabs .btn");
或
var aDiv = document.getElementsByClassName('mod-tabs')[0]
var oLi = document.getElementsByTagName('li')
var aBtn = aDiv.getElementsByTagName('btn')[0]
网友评论