DOM

作者: NathanYangcn | 来源:发表于2017-01-20 19:20 被阅读0次
  • 关键词:DOM
DOM 带来了动态修改文档的能力

1. DOM 对象的 'innerText' 和 'innerHTML' 有什么区别?

  • 返回内容不同
  • innerText:返回元素内包含的文本内容;若存在嵌套,按序由浅至深拼接文本内容
  • innerHTML:返回元素内包含的HTML结构,在写入时自动构建 DOM

2. elem.children 和 elem.childNodes 的区别?

  • 包含节点的类型不同
  • elem.children:元素集合,只包含元素(HTML标签)
  • elem.childNodes:节点集合,可包含元素(HTML标签)、文本节点、注释节点

3.1 查询元素有几种常见的方法?

  • getElementById():返回指定条件的元素节点,匹配 ID属性;若无,则返回null
  • getElementsByClassName():返回指定条件的元素节点,匹配 class属性 ;返回值为 HTMLCollection类型的对象
  • getElementsByTagName():返回所有指定标签的元素;返回值为HTMLCollection类型的对象

3.2 ES5的元素选择方法是什么?

  • querySelector():返回指定的元素节点,匹配CSS选择器
  • 若多个节点满足匹配条件,则返回第一个匹配的节点
  • 若没有节点满足匹配条件,则返回null。
  • querySelectorAll():返回指定的所有节点,匹配CSS选择器
  • 返回所有、满足任一匹配条件(参数中任一选择器)的元素
  • 该方法参数可以是:以逗号分隔的多个CSS选择器
  • 返回值为NodeList类型的对象

4.1 如何创建一个元素?

  • 方法
    createElement():用来生成HTML元素节点
    createTextNode():用来生成文本节点
    createDocumentFragment():用来生成一个DocumentFragment对象
  • DocumentFragment对象:用来生成较复杂的DOM结构,然后将DocumentFragment对象插入当前文档,这样拥有更好的性能表现
  • 例子
var newDiv = document.createElement("div");
var newContent = document.createTextNode("Hello");
newDiv.appendChild(newContent);

4.2如何给元素设置属性?如何删除属性

  • 方法
    getAttribute():用于获取元素的attribute值
    createAttribute():用于生成一个新的属性对象节点,并返回它
    setAttribute():用于设置元素属性
    romoveAttribute():用于删除元素属性
  • 例子:设置元素属性
// 方法一
var newDiv = document.getElementById("div");
var a = document.createAttribute("newAttrib");
a.value = "newValue";
newDiv.setAttributeNode(a);
// 方法二
var newDiv = document.getElementById("div");
newDiv.setAttribute("id", "header");
  • 例子:删除元素属性
var newDiv = document.getElementById("div");
newDiv.setAttribute("id", "header");
newDiv.removeAttribute('id');

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

  • 方法
    appendChild():用于在元素末尾添加元素
    insertBefore():用于在元素之前插入元素
    replaceChild():用于替换某个元素
    removeChild():用于删除某个元素
    cloneNode():用于复制元素
  • 例子:给页面元素添加子元素
var newDiv = document.createElement("div");
var newContent = document.createTextNode("Hello");
newDiv.appendChild(newContent);
  • 例子:删除页面元素的子元素
var newDiv = document.createElement("div");
var newContent = document.createTextNode("Hello");
newDiv.appendChild(newContent);
newDiv.removeChild(newContent);

6. element.classList 有哪些方法?

  • 方法
    classList.contains:用于判断一个元素的 class 列表中是包含某个 class
    classList.add():用于添加一个或多个 class
    classList.remove:用于删除一个或多个 class
  • 例子:添加一个class?线上代码栗子
var getE = document.getElementById("newDiv");
getE.classList.add("mystyle");
  • 例子:如何判断一个元素的 class 列表中是否包含某个 class?
var getE = document.getElementById("newDiv");
getE.classList.add("mystyle");
getE.classList.contains("newDiv");  // false
getE.classList.contains("mystyle");  // true
var getE = document.getElementById("newDiv");
getE.classList.add("mystyle");
getE.classList.remove("mystyle");

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

<div class="mod-tabs">
   <ul>
       <li>list1<li>
       <li>list2<li>
       <li>list3<li>
   </ul>
   <button class="btn">点我</button>
</div>

选中 li标签、btn标签

// 选中 li 标签
var li1 = getElementsByTagName("li");  // 第一种
var li2 = querySelectorAll("ul>li");  // 第二种
// 选中 btn 标签
var btn1 = getElementsByClassName("btn"); // 第一种
var btn2 = getElementsByTagName("button");  // 第二种
var btn3 = querySelector("div>button");  // 第三种

本文章著作权归饥人谷和作者所有,转载须说明来源!

相关文章

  • 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/reovbttx.html