DOM

2017-10-07  本文已影响0人  曾祥辉

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

题目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的元素选择方法是什么?

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

var node = document.getElementById("div1");
node.setAttribute("my_attrib", "newVal");

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

//创建一个新的段落p元素,然后添加到body(父元素)的最尾部
var p = document.createElement("p");
document.body.appendChild(p);
//在当前节点的某个子节点之前再插入一个子节点
<div id="parentElement">
  <span id="childElement">foo bar</span>
</div>
<script>
// 创建一个新的span元素
var sp1 = document.createElement("span");
// 获取需要插入子节点的元素
var sp2 = document.getElementById("childElement");
// 获取父元素
var parentDiv = sp2.parentNode;
// 在sp2之前将新元素插入到DOM中
parentDiv.insertBefore(sp1, sp2);
</script>
<div id="top" align="center">
  <div id="nested"></div>
</div>
// 先定位父节点,然后删除其子节点
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元素?

<div class="mod-tabs">
   <ul>
       <li>list1</li>
       <li>list2</li>
       <li>list3</li>
   </ul>
   <button class="btn">点我</button>
</div>
//选中如下代码所有的li元素
var li = document.querySelectorAll('li')
//选中btn元素
var btn document.querySelector('.btn')
上一篇 下一篇

猜你喜欢

热点阅读