目录

  • 篇一
    • 一、鼠标事件
    • 二、获取元素的属性值
    • 三、设置元素的属性值
    • 四、移除属性
    • 五、H5自定义属性
      • 1. 设置自定义属性
      • 2. 获取自定义属性
    • 六、节点操作
      • 1.两种方法的区别
      • 2.节点概述
      • 3 节点层级
        • 3.1 获取节点
        • 3.2 子节点
        • 3.3 兄弟节点
        • 3.4 创建节点 ( 也称动态创建元素节点)
        • 3.5 添加节点

篇一

本文记录JavaScript API学习笔记,后续备查。

一、鼠标事件

1、鼠标经过:onmouseover
2、鼠标离开:onmouseout

二、获取元素的属性值

// 语法格式:1. element.属性;2. element.getAttribute('属性');

二者的区别
element:获取的是元素的内置属性;
getAttribute:获得的是自定义属性;

三、设置元素的属性值

// 语法格式:1. element.属性 = '值';2. setAttribute('属性', '值')

示例如下:

// 修改类名为footerdiv.setAttribute('class', 'footer')

注:这里元素类型应写作“class”,而不能写成“className”。

四、移除属性

// 语法:element.emoveAttribute('属性');
// 示例: div.removeAttribute('index');  // index,索引号

五、H5自定义属性

1. 设置自定义属性

H5规定自定义属性需以 data- 开头

// 示例:<div data-index = '1'> </div>

或者,使用JavaScript 设置:

// 示例:element.setAttribute('data-index',2)

2. 获取自定义属性

1)兼容性获取:

 element.getAttribute ('data-index');

2) H5新增的获取方式:

element.dataset.index // 或者
element.dataset ['index']   // IE 11才开始支持
  • 注:这里的属性名就不要加前缀data- ,因为dataset本身就表示了自定义属性集合。dataset只能获取“data-”开头的*

3)特殊属性名称

// 示例:获取自定义属性的值“andy”<div data-list-name='andy'>// 将带有“-”短横线的属性名称合起来,按“驼峰命名法”写成:console.log(div.dataset.listName) // 或者console.log(div.dataset ['listName'])

注:实际开发中,用 element.getAttribute,兼容性更好

六、节点操作

获取元素通常使用两种方式

  • 利用DOM提供的方法;
  • 利用节点层级关系;

1.两种方法的区别

1.DOM提供的方法获取元素:逻辑性不强,而且繁琐;
2.利用父、子、兄获取元素:逻辑性强、操作简单;但兼容性差。

2.节点概述

  • 元素节点 nodeType 为1
  • 属性节点 nodeType 为2
  • 文本节点 nodeType 为3
    文本节点包含文字、空格、换行等
    注:实际开发中,节点操作主要操作的是元素节点。

3 节点层级

父、子、兄层级关系

3.1 获取节点

<div class = 'box'><span class = 'erweima'> × <span>
</div>// 1)DOM方法获取:var erweima = document.querySelector('.erweima')var box = document.querySelector('.box')// 2)节点方法获取(直接用 “对象.parentNode” 即可得到)var erweima = document.querySelector('.erweima')erweima.parentNode
  • 注:“parentNode”得到的是离元素最近的“父级节点”,如果找不到,则返回“null”。

3.2 子节点

1)parentNode . childNodes(标准)

返回值包含指定节点的子节点的集合,该集合为即时更新的集合(此集合包含空格、换行等)。
如需指定只获取元素的子节点:

 ul.childNodes[i].nodeType == 1  // (或==2、==3 )

2)parentNode . children(非标准——实际开发中常用)
此获取方法得到了各浏览器的支持,可放心使用。

3) 获取第1个子节点和最后1个子节点

parentNode.firstElementChild // 获取第一个子节点
parentNode.lastElementChild // 获取最后一个子节点
  • 注:以上方法有兼容性问题;

    解决兼容性一般采用如下方法:
    先用children获得元素,利用伪数组的特点,再取得第一个或最后一个子节点名称。示例如下:

console.log(ul.children[0]);  //取得第1个子节点;
console.log(ul.children[ul.children.length-1]);  // 取得最后一个子节点。

3.3 兄弟节点

1)nextSibling // 获得下一个兄弟节点;
2)previousSibling // 获得上一个兄弟节点,

 var div = document.querySelector(‘div’)// 得到的是下一个兄弟节点,没找到返回null;console.log(div.nextSibling);// 得到的是上一个兄弟节点,如果没找到则返回null console.log(div.previousSibling)
  • 注:以上两种方式均返回所有节点(含元素、文本等)

3)返回元素兄弟节点

<div> 我是div </div>
<span> 我是 span</span>
// 只返回元素节点:
// a、返回当前元素下一个兄弟元素节点,找不到则返回“null”。node.nextElementSibling;// b、返回当前元素下一个兄弟元素节点,找不到则返回“null”。node.previousElementSibling ;
  • 注:ab兼容性问题,目前的解决办法是封装函数:
function getNextElementSibling(element){var el = element;while(el = el.nextSibling) {if (el.nodeType == 1) {return el;}}return null;
}

3.4 创建节点 ( 也称动态创建元素节点)

应用场景:文章的评论区评论。

   <ul> </ul>  // 如果要创建 li 节点:var li = document.createElement('li')

3.5 添加节点

1)在指定元素之后加一个元素;

 // 语法规范:node.appendChild(child);

【说明】 appendChild:在后面追加元素(类似数组中push的作用)。其中,“node” 是父级,“child” 是子级

var ul = document . querySelector('ul') // 获取父级ul.appendChild('li') // 在ul创建一个li

2)在指定元素之前添加一个元素对象

 <ul><li> 123 </li></ul>node.insertBefore(child,指定元素)var lis = document . createElement('li')ul.insertBefore(lis,ul.children[0]) ;

前端学习笔记之 JavaScript WebAPIs(整理)相关推荐

  1. 【前端学习笔记】JavaScript + jQuery + Vue.js + Element-UI

    前端学习笔记 JavaScript jQuery Vue.js Element-UI Java 后端部分的笔记:Java 后端笔记 JavaScript 基础语法(数据类型.字符串.数组.对象.Map ...

  2. web前端学习笔记之JavaScript

    文章目录 1 JavaScript简介 2 JS基础 3 JS代码编写位置 3.1 行内式 3.2 内嵌式 3.3 外联式 4 基本语法 5 字面量和变量 5.1 字面量 5.2 变量 6 标识符 7 ...

  3. 『前端学习笔记』 JavaScript 事件与对象、DOM与BOM

    参考视频:[极客学院]Web前端开发教学 - 第一部分:H5+CSS+JS 参考文档:JavaScript 教程 W3school 文章目录 DOM对象 HTML DOM 操作HTML 操作CSS E ...

  4. 前端学习笔记(五)-JavaScript语法基本概念

    基本概念 语法 对大小写敏感 采用驼峰命名风格 使用C风格的注释 //单行注释 /** 多行注释**/ 复制代码 严格模式,一种不同的解析与执行模型 启动方式:在顶部添加代码"use str ...

  5. [前端学习笔记] jQuery基础知识整理

    一.jQuery基本概念 1. 什么是jQuery jQuery是一个快速简洁的JS库,封装了JS常用的功能代码,优化了DOM操作.事件处理.动画设计.Ajax交互等.我们可以快速查询使用里面的功能函 ...

  6. 前端学习笔记:Bootstrap框架入门

    前端学习笔记:Bootstrap框架入门 一.Bootstrap概述 1.基本信息 ​Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap 是基于 HTML.CSS. ...

  7. 前端学习笔记(js基础知识)

    前端学习笔记(js基础知识) JavaScript 输出 JavaScript 数据类型 常见的HTML事件 DOM 冒泡与捕获 流程控制语句 for..in 计时器 let,var,const的区别 ...

  8. 前端学习笔记:省市区三级联动

    前端学习笔记:省市区三级联动 一.数据库 sql表是自关联的表. 表名:province_city_district 字段: id:区域自身的id pid:区域的父级id name:区域自身的名字 二 ...

  9. 前端学习笔记之CSS3基础语法与盒模型(二)

    前端学习笔记之 CSS3基础语法与盒模型 CSS3简介 CSS(cascading style sheet,层叠式样式表)是用来给HTML标签添加样式的语言 CSS3是CSS的最新版本,增加了大量的样 ...

最新文章

  1. 数据竞赛利器XGBoost常见面试题集锦
  2. Golang手册与常用包手册
  3. xcode 安装 svn command line
  4. ann matlab,人工神经网络ann及其matlab仿真.ppt
  5. 5分钟速成C++14多线程编程
  6. 币圈名利场,一场赤裸裸的狼人杀
  7. 200多个恶意NPM程序包针对Azure 开发人员,发动供应链攻击
  8. UICollectionView实现带头视图和组的头视图同时存在实现
  9. 【NLP】揭秘马尔可夫模型神秘面纱系列文章(四)
  10. python全套视频迅雷下载_[全套视频] 老王Python基础,进阶,项目篇(无KEY完整版) 视频教程 15G...
  11. 用u盘安装mysql,奥维互动地图企业服务器基本环境安装 ——U盘引导安装CentOS 6.5...
  12. 在JSP中使用CELL插件
  13. 数据挖掘--决策树ID3+k-means聚类分析西瓜数据
  14. Linux文件莫名被删除,【Linux】Linux文件被删除后的恢复方法
  15. QT中的LIBS用法
  16. LC-恢复二叉搜索树(JavaScript实现)
  17. windows 连接蓝牙耳机失败 解决方法
  18. MDK 出现#68-D: integer conversion resulted in a change of sign
  19. 腾讯云的ping检测
  20. EduCoder-Web程序设计基础-html5—结构元素-第3关:figure元素和figcaption元素的应用

热门文章

  1. go语言mysql框架_超级详细:Go语言框架Gin和Gorm实现一个完整的待办事项微服务...
  2. java中stack集合框架
  3. C语言之strstr函数
  4. HMS数据库设置和优化
  5. 如何使用Arthas提高日常开发效率?
  6. Quick BI v3.0版本全新起航——2018杭州云栖大会
  7. 2017双11交易系统TMF2.0技术揭秘,实现全链路管理
  8. “低代码”将干掉 70% 的软件开发工作
  9. 立即生效!帕特·基辛格卸任 VMware 所有职务
  10. Java 最高均薪 19015 元! 8 月程序员工资出炉,你拖后腿了吗?