1.DOM操作

常用的DOM操作
  1. document.getElementById(id);
  2. //返回指定id的元素,通用
  3. document.getElementsByTagName(tagName);
  4. //返回带有指定标签名的对象的集合,通用
  1. /* 不常用 */
  2. getElementsByClassName(className);
  3. //返回指定类名的元素集合,不兼容IE7、8,其他浏览器支持
  4. getElementsByName();
  5. //返回指定name属性元素的集合

DOM树中元素与元素之间的关系:父子、兄弟

假如现在有一个DOM元素为obj

找DOM节点

1.找父节点

  1. /* 通用 */
  2. obj.parentNode;

2.找兄弟节点

  1. /* 不常用,应为不兼容 */
  2. obj.nextSibling;//找obj“下一个”兄弟节点,这个属性只有IE7、8认识
  3. obj.nextElementSibling;//找obj“下一个”兄弟节点,其他浏览器认识
  4. obj.previousSibling;//找obj“上一个”兄弟节点,这个属性只有IE7、8认识
  5. obj.previousElementSibling;//找obj“上一个”兄弟节点,其他浏览器认识
  6. /* 兼容性写法:先通用 || 后IE7、8 */
  7. var next = obj.nextElementSibling || obj.nextSibling;
  8. var last = obj.previousElementSibling || obj.previousSibling;

3.找子节点


  1. /* 找第一个子节点 */
  2. obj.firstElementChild;通用
  3. obj.firstChild;//只有IE7、8认识,不通用
  4. /* 找最后一个子节点 */
  5. obj.lastElementChild;//通用
  6. obj.lastChild;//只有IE7、8认识,不通用
  7. /* 兼容性写法:先通用 || 后IE7、8 */
  8. var firstLi = obj.firstElementChild || obj.firstChild;
  9. var lastLi = obj.lastElementChild || obj.lastChild;
  10. /* 找所有子节点 */
  11. obj.childNodes;//w3c标准,但会找到空文本的节点,不常用
  12. obj.children;//非标准,只会计算“真正”的子元素,常用
DOM节点操作

在DOM操作里,所有的创建、插入、删除操作,都必须通过父节点来插入子节点和删除子节点

  • 节点文本操作: 控制节点文本
  • (1) innerText: 会原封不动的显示字符串(不常用)

  • (2) innerHTML: 会解析这个字符串,如果该字符串中有HTML标记成分,就会被按照HTML的规范,将标记解析出来后显示(常用)

4.动态创建DOM节点

  1. /* 尾部添加节点 */
  2. var obj = document.createElement("tagName");
  3. //此时只在内存里创建了节点,还没有写入HTML文档中
  4. var fatherNode = document.getElementById("fatherId");
  5. //拿到父节点
  6. fatherNode.appendChild(obj);
  7. //在父节点内部所有子节点尾部追加新建的节点
  8. //此时节点才创建完成
  1. /* 任意位置插入节点 */
  2. var newChild = document.createElement("tagName");
  3. var fatherNode = document.getElementById("fatherId");
  4. var refChild = document.getElementById("refChild_Id");
  5. fatherNode.insertBefore(newChild, refChild);//newChild: 新建节点 refChild: 参照节点
  6. //在参照节点之前插入新节点,参照节点可以为null,此时新建节点会被插入尾部
  1. /* 删除节点 */
  2. var fatherNode = document.getElementById("fatherId");
  3. var oldChidNode = document.getElementById("oldChild_Id");
  4. fatherNode.removeChild(oldChildNode);
动态设置DOM元素的属性

写属性: obj.setAttribute("valueName","value");

读属性: obj.getAttribute("valueName");

2.控制样式

3.动画效果

JavaScript笔记(5)的更多相关文章

  1. [Effective JavaScript 笔记] 第4条:原始类型优于封闭对象

    js有5种原始值类型:布尔值.数字.字符串.null和undefined. 用typeof检测一下: typeof true; //"boolean" typeof 2; //&q ...

  2. [Effective JavaScript 笔记] 第5条:避免对混合类型使用==运算符

    “1.0e0”=={valueOf:function(){return true;}} 是值是多少? 这两个完全不同的值使用==运算符是相等的.为什么呢?请看<[Effective JavaSc ...

  3. [Effective JavaScript 笔记]第3章:使用函数--个人总结

    前言 这一章把平时会用到,但不会深究的知识点,分开细化地讲解了.里面很多内容在高3等基础内容里,也有很多讲到.但由于本身书籍的篇幅较大,很容易忽视对应的小知识点.这章里的许多小提示都很有帮助,特别是在 ...

  4. [Effective JavaScript 笔记]第27条:使用闭包而不是字符串来封装代码

    函数是一种将代码作为数据结构存储的便利方式,代码之后可以被执行.这使得富有表现力的高阶函数抽象如map和forEach成为可能.它也是js异步I/O方法的核心.与此同时,也可以将代码表示为字符串的形式 ...

  5. [Effective JavaScript 笔记]第28条:不要信赖函数对象的toString方法

    js函数有一个非凡的特性,即将其源代码重现为字符串的能力. (function(x){ return x+1 }).toString();//"function (x){ return x+ ...

  6. 从头开始学JavaScript 笔记(一)——基础中的基础

    原文:从头开始学JavaScript 笔记(一)--基础中的基础 概要:javascript的组成. 各个组成部分的作用 . 一.javascript的组成   javascript   ECMASc ...

  7. 【原】javascript笔记之Array方法forEach&map&filter&some&every&reduce&reduceRight

    做前端有多年了,看过不少技术文章,学了新的技术,但更新迭代快的大前端,庞大的知识库,很多学过就忘记了,特别在项目紧急的条件下,哪怕心中隐隐约约有学过一个方法,但会下意识的使用旧的方法去解决,多年前ES ...

  8. JavaScript笔记目录

    JavaScript笔记目录 一.JavaScript简介 二.在HTML中使用JavaScript ...持续更新中,敬请期待

  9. 蛋糕仙人的javascript笔记

    蛋糕仙人的javascript笔记:https://www.w3cschool.cn/kesyi/kesyi-nqej24rv.html

  10. JavaScript笔记(第一章,第二章)

    JavaScript笔记(第一章,第二章) 第一章: <meta http-equiv="Content-Type" content="text/html; cha ...

随机推荐

  1. Flask模拟实现CSRF攻击的方法

    https://www.jb51.net/article/144371.htm https://www.cnblogs.com/888888CN/p/9489345.html http://xiaor ...

  2. JavaScript new对象的四个过程

    new 一个对象 function Person(name, age) { this.name = name; this.age = age; } var person = new Person(&q ...

  3. Redux 视频教程

    视频地址:http://www.imooc.com/learn/744

  4. python全栈测试之路-py3基础:基础的常用语法知识

    python基础链接 python3速查参考- python基础 2 -> if语句应用 + while循环应用 https://www.cnblogs.com/wuzhiming/p/7795 ...

  5. 【DSP开发】DSP COFF 与 ELF文件

    本文介绍了C6000最新的v7.2或者之后的编译器如何支持ELF(EABI)和COFF-ABI格式,首先由ARM引入嵌入式(Embedded) EABI的介绍,之后比较了COFF-ABI和EABI的区 ...

  6. vscode Settings Sync 插件的详细介绍

    参考链接:https://www.jianshu.com/p/dbbdc635f8e1

  7. Charles系列三:Charles打断点(包含修改请求,修改返回的内容),模拟慢速网络(弱网测试),域名映射,过滤请求,接口调试,打压测试

    一:Charles断点的使用(包含修改请求,修改返回的数据) 设置断点来修改请求和返回的数据,在开发过程中可以模拟多种响应.步骤如下: 1.添加断点方法有两种: 方法1:找到Charles中菜单项Pr ...

  8. spring中@Conditional注解

    @Conditional是Spring4新提供的注解,它的作用是根据某个条件加载特定的bean. 我们需要创建实现类来实现Condition接口,这是Condition的源码 public inter ...

  9. restful规范与rest_framework

    django两种开发模式: 一.前后端不分离项目 二.前后端分离项目 什么是restful规范? 在前后端不分离的项目中,网页所需要的数据可以直接通过模板渲染的方式传递到前端页面,并且可以很好的支持d ...

  10. fastadmin cms使用注意一

    addon和application还有前端配置后还需要 注意表配置