记1月17日作业
Q1: dom对象的innerText和innerHTML有什么区别?
在dom中innertext是一个可写属性,返回元素内包括的文本内容,在多层次时会由浅到深的顺序进行拼接。
innerHTML、outerHTML与innertext相类似,差别只体现在返回元素的结构上。
而innerHTML和outerHTML的差别体现在显示代码是否包含其本身。
1.png
Q2:elem.children和elem.childNodes的区别?
children:只会查询子元素的列表,不包含其文本节点;
childNodes:会查询子元素的列表,包含其文本节点。
2.png
Q3:查询元素有几种常见的方法?ES5的元素选择方法是什么?
- getElementsById():返回匹配指定的ID属性的元素节点,若是未匹配的,则返回null。
- getElementsByClassName():返回一个类似数组的对象,包括了所有class名字符合指定条件的元素(搜索范围包括本身,元素变化实时反映在返回结果中)。
getElementsByClassName方法的参数,可以是多个空格分隔的class名字,返回同时具有这些节点的元素。 - getElementByTagName():返回所有指定标签的元素(包括本身),返回值为HTMLCollection对象,搜索结果是一个动态的集合,任何元素的变化都实时的反映在结果中。
- getElementsByName():用于选择拥有name属性的HTML元素,例如:from、img、fram、embed和object,返回一个NodeList格式的对象,不会实时反映元素的变化
- querySelector():返回匹配指定的CSS选择器的元素节点,若多个匹配点,则选取第一个;若没有,则返回null。
- querySelectorAll():选取所有匹配的元素节点。
- elementFromPoint():返回位于页面指定位置的元素。
ES5的元素选择方法是querySelector()、querySelectorAll()、elementFromPoint()。
Q4:如何创建一个元素?如何给元素设置属性?如何删除属性
1.createElement()用来生成HTML元素节点
var newDiv = document.createElement("div")
2.setAttribute()用于设置元素属性
var node = documentgetElementById('div1');
node.setAttribute("my_attid","newVal")
3.removeAttribute():用于删除元素属性
newDiv.removeAttribute('id')
Q5:如何给页面元素添加子元素?如何删除页面元素下的子元素?
添加元素:
var newDiv = document.reateElement("div");
var newContent = document.CreateTextNode("Hellow");
newDiv.appendchild(newContent);
document.body.appendChild(newDiv)
删除元素:
document.body.removeChild(newDiv)
Q6:”element.classList有哪些方法?如何判断一个元素的 class 列表中是包含某个 class?如何添加一个class?如何删除一个class?
添加一个class:元素.classList.add();
删除一个class:元素.classList.remove();
检查某个元素是否包含一个class:元素.classList.contains()。
Q7:如何选中如下代码所有的li元素? 如何选中btn元素?
<div class="mod-tabs">
<ul>
<li>list1<li>
<li>list2<li>
<li>list3<li>
</ul>
<button class="btn">点我</btn>
</div>
选择li元素:
var node = document.querySelector('li');
选择btn元素:
var btn = document.querySelectorAll('.btn')