DOM

作者: 曾祥辉 | 来源:发表于2017-10-07 03:23 被阅读0次

题目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);
//在当前节点的某个子节点之前再插入一个子节点
<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')

相关文章

  • dom 级别和dom 事件处理

    dom级别:dom0 dom1 dom2 dom3 dom事件处理:dom0 dom2 dom3 (1级DOM标准...

  • WY-DOM编程

    DOM Document Object Model DOM Core DOM HTML DOM Style DOM...

  • DOM事件

    DOM级别与DOM事件 DOM级别:DOM0级、DOM1级、DOM2级、DOM3级DOM事件:DOM0级事件处理、...

  • DOM事件

    DOM级别与DOM事件 DOM级别:DOM0级,DOM1级,DOM2级和DOM3级DOM事件:DOM0级事件处理,...

  • js红包雨活动

    function Block( dom ){ this.dom = dom; //dom this.parentW...

  • DOM操作的分类

    DOM操作分为三个方面,即DOM Core(核心)、HTML-DOM和CSS-DOM。 DOM Core DOM ...

  • 虚拟 DOM 和 diff 算法

    虚拟 DOM(Virtual DOM) 通过 JS 对象表示 DOM 结构,虚拟DOM 是对 DOM 的抽象 通常...

  • jQuery——DOM

    DOM操作分类 一般来说,DOM操作分为3个方面,即DOM Core、HTML-DOM、CSS-DOM。 DOM ...

  • JavaScript高级程序设计前四章

    1. DOM级别 1.1 DOM1级 由DOM核心(DOM Core)和DOM HTML两个模块组成。 DOM核心...

  • DOM分级详解

    DOM1 级(DOM Level 1) DOM1 级由两个模块组成:DOM核心(DOM Core)和DOM HTM...

网友评论

      本文标题:DOM

      本文链接:https://www.haomeiwen.com/subject/dxifqxtx.html