题目1: dom对象的innerText和innerHTML有什么区别?
- innerText是一个可写属性,返回元素内包含的文本内容,在多层次的时候会按照元素由浅到深的顺序拼接其内容
- innerHTML属性作用和innerText类似,但是不是返回元素的文本内容,而是返回元素的HTML结构,在写入的时候也会自动构建DOM
题目2: elem.children和elem.childNodes的区别?
elem.children只包含HTML元素节点,elem.childNodes不仅包含HTML元素节点,还包含文本节点。
题目3:查询元素有几种常见的方法?ES5的元素选择方法是什么?
getElementById()
getElementsByClassName()
getElementsByTagName()
getElementsByName()
querySelector()
querySelectorAll()
ES5的元素选择:
querySelector()
querySelectorAll()
题目4:如何创建一个元素?如何给元素设置属性?如何删除属性
创建:
1,createElement方法用来生成HTML元素节点。
2,createTextNode方法用来生成文本节点,参数为所要生成的文本节点的内容。
var newDiv = document.createElement("div");
var newContent = document.createTextNode("Hello");
设置:
setAttribute()方法用于设置元素属性
var node = document.getElementById("div1");
node.setAttribute("my_attrib", "newVal");
删除:
removeAttribute()用于删除元素属性
node.removeAttribute('id');
题目5:如何给页面元素添加子元素?如何删除页面元素下的子元素?
var ele = document.createElement(elem)
document.body.appendChild(ele)
document.body.removeChild(ele)
题目6: element.classList有哪些方法?如何判断一个元素的 class 列表中是包含某个 class?如何添加一个class?如何删除一个class?
- add( String [, String] )
添加指定的类值。如果这些类已经存在于元素的属性中,那么它们将被忽略。 - remove( String [,String] )
删除指定的类值。 - item ( Number )
按集合中的索引返回类值。 - toggle ( String [, force] )
1、当只有一个参数时:切换 class value; 即如果类存在,则删除它并返回false,如果不存在,则添加它并返回true。
2、当存在第二个参数时:如果第二个参数的计算结果为true,则添加指定的类值,如果计算结果为false,则删除它
contains( String )
检查元素的类属性中是否存在指定的类值。
contains( String )判断一个元素的 class 列表中是包含某个 class。
add( String [, String] )添加一个class。
remove( String [,String] )删除一个class。
题目7: 如何选中如下代码所有的li元素? 如何选中btn元素?
<div class="mod-tabs">
<ul>
<li>list1<li>
<li>list2<li>
<li>list3<li>
</ul>
<button class="btn">点我</button>
</div>
document.getElementsByTagName('li'); document.querySelectorAll('li');
document.querySelectorAll('.btn'); document.getElementsByClassName('btn');