1. dom对象的innerText和innerHTML有什么区别?
- innerText是所选dom节点的文本内容,不含html结构。
- innerHTML是所选dom节点的HTML结构的文本,但不包含自身,outerHTML包含自身。
2.elem.children和elem.childNodes的区别?
- elem.childNodes返回的是所有子元素的节点,包括HTML结构,属性,文本。
- elem.children返回的是子元素的节点,包括HTML结构,属性,但是不包括文本。
3.查询元素有几种常见的方法?ES5的元素选择方法是什么?
- document.getElementById(),查询ID选择器元素。
- document.getElementByClassName(),通过查询元素的选择器名,查询元素。
- document.getElementByTagName(),通过查询元素的标签名,查询元素。
ES5中选择元素的方法,可以通过选择元素的选择器来是实现。
- document.querySelector(x),可以选择有x选择器的元素 ,比如<div class='lala'></div>
用document.querySelector('.lala')就可以选择到这个元素,但是这个方法指挥选择一个元素。 - document.querySelectorAll(x),选择所有x选择器的元素。
这两种方法的选择器写法和外联式中css选择器的写法相同
4.如何创建一个元素?如何给元素设置属性?如何删除属性
创建元素用 document.createElement('元素标签名'),
用document.createElement().setAtrribute('属性名','value')设置属性。
用document.createElement().removeAtrribute('属性名')删除属性。
5.如何给页面元素添加子元素?如何删除页面元素下的子元素?
选中元素,然后调用元素节点的appendchild()的办法,在元素末尾添加元素。
然后调用元素节点的insertBefore()的方法,可以插入元素。
选中元素,然后调用元素的removechild()办法,删除元素。
6. element.classList有哪些方法?如何判断一个元素的 class 列表中是包含某个 class?如何添加一个class?如何删除一个class?
add(class1, class2, ...)在元素中添加一个或多个不存在的类名。
contains(class)返回布尔值,判断指定的类名是否存在。
item(index)返回索引值对应的元素类名。从 0 开始,在区间范围外则返回 null。
remove(class1, class2, ...)移除元素中一个或多个类名。移除不存在的类名,不会报错。
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">点我</btn>
</div>
//选中所有的li元素
document.getElementsByTagName('li')(返回结果是一个类数组对象,HTMLCollection类型的对象)
document.querySelectorAll('li')
//选中btn元素
document.getElementsByClassName('btn')
document.querySelector('.btn')