课程任务
题目1: dom对象的innerText和innerHTML有什么区别?
区别:
innerText 是一个可写属性,返回元素内包含的文本内容,在多层次的时候会按照元素由浅到深的顺序拼接其内容。(能获取或修改文本内容)
innerHTML属性作用与innerText类似,但不是返回元素的文本内容,而是返回元素的HTML结构,在写入的时候也会自动构建DOM.(能获取或修改html里的所有内容)
例如:
<div>
<p>
123
<span>456</span>
</p>
</div>
外层div的innerText返回内容是''123456''
外层div的innerHTML返回内容是:''<p>123<span>456</span></p>''
题目2: elem.children和elem.childNodes的区别?
区别:
childNodes属性,标准的,它返回指定元素的子元素集合,包括HTML节点,所有属性,文本。可以通过nodeType来判断是哪种类型的节点,只有当nodeType==1时才是元素节点,2是属性节点,3是文本节点。
children属性,非标准的,它返回指定元素的子元素集合。经测试,它返回HTML节点,甚至不返回文本节点。和childNodes 一样,在Firefox下不支持()取集合元素。
(对于DOM元素,children是指DOM Object类型的子对象,不包括tag之间隐形存在的TextNode,而childNodes包括tag之间隐形存在的TextNode对象。)
题目3:查询元素有几种常见的方法?ES5的元素选择方法是什么?
常见查询元素方法:
document.getElementById();
document.getElementsByTagName();
document.getElementsByClassName();
document.getElementsByName();
ES5的元素选择方法:
document.querySelector();
document.querySelectorAll();
document.ElementFromPoint();
题目4:如何创建一个元素?如何给元素设置属性?如何删除属性
创建元素:
createElement方法用来生成HTML元素节点
var newDiv = document.createElement("div");
create TextNode方法用来生存文本节点,参数为所要生成的文本节点的内容:
var newDiv = document.createElement("div")
var newContent = document.createTextNode("Hello");
createDocumentFragment方法生成一个DocumentFragment对象。(DocumentFragment对象是一个存在于内存的DOM片段,但是不属于当前文档,常常用来生成较复杂的DOM结构,然后插入当前文档。这样做的好处在于,因为DocumentFragment不属于当前文档,对它的任何改动,都不会引发网页的重新渲染,比直接修改当前文档的DOM有更好的性能表现。)
var docFragment = document.createDocumentFragment();
给元素设置属性:
node.setAttribute('属性名', '属性值');
删除属性:
node.removeAttribute('属性名')
题目5:如何给页面元素添加子元素?如何删除页面元素下的子元素?
给页面元素添加子元素:
var newNode = document.createElement("标签名");
fatherNode.appendChild(newNode);
删除页面元素下的子元素:
var newNode = document.createElement("标签名");
fatherNode.appendChild(newNode);
fatherNode.removeChild(newNode);
题目6: element.classList有哪些方法?如何判断一个元素的 class 列表中是包含某个 class?如何添加一个class?如何删除一个class?
题目7: 如何选中如下代码所有的li元素? 如何选中btn元素?
<div class="mod-tabs">
<ul>
<li>list1<li>
<li>list2<li>
<li>list3<li>
</ul>
<button class="btn">点我</btn>
</div>
文章著作权归饥人谷_sunny和饥人谷所有,转载须说明来源