DOM

题目1: dom对象的innerText和innerHTML有什么区别?

  • innerText:返回元素内包含的文本内容,在多层次的时候会按照元素由浅到深的顺序拼接,其内容可写;
  • innerHTML:返回元素的HTML结构,在写入的时候也会自动构建DOM。

题目2: elem.children和elem.childNodes的区别?

首先了解Element和Node的区别:
Node(节点)是DOM层次结构中的任何类型的对象的通用名称,Node有很多类型;如元素节点,属性节点,文本节点,注释节点等,通过NodeType区分;
Element继承了Node类,也就是说Element是Node多种类型中的一种,另外Element扩展了Node,Element拥有id、class、children等属性。
而children是Element的属性,childNodes是Node的属性

题目3:查询元素有几种常见的方法?ES5的元素选择方法是什么?

  • 查询元素常见的方法

  • getElementById()

  • getElementsByClassName()

  • getElementsByTagName()

  • getElementsByName()

  • ES5的元素选择方法

  • querySelector()

  • querySelectorAll()

  • elementFromPoint()

题目4:如何创建一个元素?如何给元素设置属性?如何删除属性

  • 创建一个元素:var newDiv = document.createElement("div");
  • 给元素设置属性
var node = document.getElementById("div1");
node.setAttribute("my_attrib", "newVal");
  • 删除属性node.removeAttribute('attrName');(attrName 是一个字符串,将要从元素中删除的属性名。)

题目5:如何给页面元素添加子元素?如何删除页面元素下的子元素?

  • 给页面元素添加子元素
//创建一个新的段落p元素,然后添加到body(父元素)的最尾部
var p = document.createElement("p");
document.body.appendChild(p);
//在当前节点的某个子节点之前再插入一个子节点
foo bar
  • 删除页面元素下的子元素
// 先定位父节点,然后删除其子节点
var d = document.getElementById("top");
var d_nested = document.getElementById("nested");
var throwawayNode = d.removeChild(d_nested);
// 无须定位父节点,通过parentNode属性直接删除自身
var node = document.getElementById("nested");
if (node.parentNode) {
  node.parentNode.removeChild(node);
}
// 移除一个元素节点的所有子节点
var element = document.getElementById("top");
while (element.firstChild) {
  element.removeChild(element.firstChild);
}

题目6: element.classList有哪些方法?如何判断一个元素的 class 列表中是包含某个 class?如何添加一个class?如何删除一个class?

element.classList方法如下:

add( String [, String] )
添加指定的类值。如果这些类已经存在于元素的属性中,那么它们将被忽略。
remove( String [,String] )
删除指定的类值。
item ( Number )
按集合中的索引返回类值。
toggle ( String [, force] )
当只有一个参数时:切换 class value; 即如果类存在,则删除它并返回false,如果不存在,则添加它并返回true。
当存在第二个参数时:如果第二个参数的计算结果为true,则添加指定的类值,如果计算结果为false,则删除它
contains( String )
检查元素的类属性中是否存在指定的类值。
var node = document.querySelector('ct')
//判断一个class为ct的元素的class 列表中是包含logo(某个 class)
node.classlits.contains('logo')//true or false
//添加一个名为logo的class
node.classlits.add('logo')
//删除一个名为logo的class
node.classlits.remove('logo')

题目7: 如何选中如下代码所有的li元素? 如何选中btn元素?

  • list1
  • list2
  • list3
//选中如下代码所有的li元素
var li = document.querySelectorAll('li')
//选中btn元素
var btn document.querySelector('.btn')

你可能感兴趣的:(DOM)