1 DOM

1.1 查找标签

(1)直接查找

document.getElementById(“idname”)          // dom对象

document.getElementsByTagName(“tagname”)   // dom对象集合 标签对象集合

document.getElementsByClassName(“name”)    // dom对象集合 标签对象集合

(2)导航查找

通过某一个标签定位到另一个标签

parentElement           // 父节点标签元素

children                // 所有子标签

firstElementChild       // 第一个子标签元素

lastElementChild        // 最后一个子标签元素

nextElementtSibling     // 下一个兄弟标签元素

previousElementSibling  // 上一个兄弟标签元素

1.2 操作标签

(1)文本操作

取值操作

Dom对象.innerText

Dom对象.innerHTML

赋值操作:

Dom对象.innerText="hello world"

Dom对象.innerHTML="hello world"

(2)属性操作

console.log(Dom对象.属性);

Dom对象.属性=值

console.log(dom对象.getAttribute("属性名"))

dom对象.setAttribute("属性名","值")

value: input,select,textarea

(3)class属性操作

elementNode.className

elementNode.classList.add

elementNode.classList.remove

(4)css样式设置

Dom对象.style.样式属性=样式值

2 节点操作

2.1 创建节点

document.createElement("a")
var ele_a = document.createElement("a");
ele_a.href = "http://www.baidu.com";
ele_a.innerHTML = "百度";
console.log(ele_a);

2.2 添加节点

父节点.appendChild(添加节点)

2.3 删除节点

父节点.removeChild(子节点)

2.4 替换节点

父节点.replaceChild(新节点,被替换节点)

3 事件

3.1 概览

  onclick        当用户点击某个对象时调用的事件句柄。

  ondblclick     当用户双击某个对象时调用的事件句柄。

  onfocus        元素获得焦点。               练习:输入框

  onblur         元素失去焦点。               应用场景:用于表单验证,用户离开某个输入框时,代表已经输入完了,我们可以对它进行验证.

  onchange       域的内容被改变。             应用场景:通常用于表单元素,当元素内容被改变时触发.(三级联动)

  onkeydown      某个键盘按键被按下。          应用场景: 当用户在最后一个输入框按下回车按键时,表单提交.

  onkeypress     某个键盘按键被按下并松开。

  onkeyup        某个键盘按键被松开。

  onload         一张页面或一幅图像完成加载。

  onmousedown    鼠标按钮被按下。

  onmousemove    鼠标被移动。

  onmouseout     鼠标从某元素移开。

  onmouseover    鼠标移到某元素之上。

  onmouseleave   鼠标从元素离开

  onselect       文本被选中。

  onsubmit       确认按钮被点击。

3.2 onload事件

  onload 属性,只给body元素加。

  这个属性的触发,标志着页面内容被加载完成。

  应用场景: 当有些事情我们希望页面加载完立刻执行,那么可以使用该事件属性。

3.3 onsubmit

  当表单在提交时触发

  该属性也只能给form元素使用

  应用场景: 在表单提交前验证用户输入是否正确.如果验证失败.在该方法中我们应该阻止表单的提交.

3.4 事件传播

<div class="outer">
<div class="inner"></div>
</div>
<script>
var outer = document.getElementsByClassName("outer")[0];
var inner = document.getElementsByClassName("inner")[0];
outer.onclick=function (e) {
alert("out");
}
inner.onclick=function (e) {
alert("inner");
// 阻止事件传播
e.stopPropagation();
}
</script> 

3.5 阻止默认事件

<form action="" id="form">
<p>用户名<input type="text" name="user" /></p>
<p><input type="submit"/></p>
</form>
<script>
var ele_form = document.getElementById("form");
ele_form.onclick = function (e) {
var inp = document.getElementsByName("user")[0];
var user = inp.value;
if( user.length > 10 || user.length < 5 ){
// 阻止默认事件发生
// 方式1
// return false;
// 方式2
e.preventDefault();
}
};
</script> 

3.6 onkeydown

  Event 对象:Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
  事件通常与函数结合使用,函数不会在事件发生前被执行!event对象在事件发生时系统已经创建好了,并且会在事件函数被调用时传给事件函数.我们获得仅仅需要接收一下即可.比如onkeydown,我们想知道哪个键被按下了,需要问下event对象的属性,这里就时KeyCode.

<input type="text" id="inp" />
<script>
var ele = document.getElementById("inp");
ele.onkeydown = function (e) {
e = e || window.event;
var keynum = e.keyCode;
var keychar = String.fromCharCode(keynum);
console.log(keynum + "======>" + keychar);
}
</script>

js知识-进阶的更多相关文章

  1. js基础进阶--图片上传时实现本地预览功能的原理

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 前言 最近在项目上加一个图片裁剪上传的功能,用的是cropper插件,注意到选择本地图片后就会有预览效果,这里整理一下这种预览效 ...

  2. id,is的用法,小数据池的概念及编码知识进阶

    一:id 查询内存地址 name = 'alex' print(id(name)) li = [1,2,3] print(id(li)) 二:is  判断的是内存地址 name1 = 'alex@' ...

  3. js基础进阶--关于setTimeout的思考

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 先热身 看看下面的额代码会打印出什么? for (var i = 0; i < 5; i++) { setTimeout( ...

  4. 【Todo】React & Nodejs学习 &事件驱动,非阻塞IO & JS知识栈:Node为主,JQuery为辅,Bootstrap & React为辅辅,其他如Angular了解用途即可

    JS知识栈:Node为主,JQuery为辅,Bootstrap & React为辅辅,其他如Angular了解用途即可 今天在学习ReactJS和NodeJS,看到关于ReactJS的这篇文章 ...

  5. L011系统文件属性知识进阶详解小节

    L011系统文件属性知识进阶详解小节 这节课的内容相对来说较少,一上午加中午就听完了,现在总结一下,最后会有一个相关的面试题. 首先先附上一张图: 今天学习主要跟①和②有关,①为Inode 号 ②为文 ...

  6. 【原创】分布式之数据库和缓存双写一致性方案解析(三) 前端面试送命题(二)-callback,promise,generator,async-await JS的进阶技巧 前端面试送命题(一)-JS三座大山 Nodejs的运行原理-科普篇 优化设计提高sql类数据库的性能 简单理解token机制

    [原创]分布式之数据库和缓存双写一致性方案解析(三)   正文 博主本来觉得,<分布式之数据库和缓存双写一致性方案解析>,一文已经十分清晰.然而这一两天,有人在微信上私聊我,觉得应该要采用 ...

  7. 第4章 基础知识进阶 第4.1节 Python基础概念之迭代、可迭代对象、迭代器

    第四章 基础知识进阶第十七节 迭代.可迭代对象.迭代器 一.    引言 本来计划讲完元组和字典后就讲列表解析和字典解析,但要理解列表解析和字典解析,就需要掌握Python的高级的类型迭代器,因此本节 ...

  8. js知识梳理6:关于函数的要点梳理(2)(作用域链和闭包)

    写在前面 注:这个系列是本人对js知识的一些梳理,其中不少内容来自书籍:Javascript高级程序设计第三版和JavaScript权威指南第六版,感谢它们的作者和译者.有发现什么问题的,欢迎留言指出 ...

  9. js知识梳理5:关于函数的要点梳理(1)

    写在前面 注:这个系列是本人对js知识的一些梳理,其中不少内容来自书籍:Javascript高级程序设计第三版和JavaScript权威指南第六版,感谢它们的作者和译者.有发现什么问题的,欢迎留言指出 ...

随机推荐

  1. Git常规配置与基本用法

    Git环境配置 一. 全局配置 1. 配置文件 git全局配置文件.gitconfig默认在当前系统用户文件夹下,window可运行%USERPROFILE%查找,Mac系统在cd ~查找. 具体配置 ...

  2. python实战===代码

    #!/usr/bin/env python # encoding:utf-8 import requests import json from conf import STORE_DICT_LIST ...

  3. 给mongodb设置密码权限

    昨天装了个mongodb数据库用于测试用,装好后没有密码,现在就讲讲怎么设置密码 1.首先进入C:\mongodb\bin下面运行mongod.exe启动数据库. 2.在相同目录下启动mongo.ex ...

  4. jQuery通过Ajax向PHP服务端发送请求并返回JSON数据

    SON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.JSON在前后台交互的过程中发挥着相当出色的作用.请接着往下看教 ...

  5. spring boot&&cloud干货系列

    接触spring boot也有些时日了,刚开始博主还想参照官方参考指南自己写一个系列的入门式的教程,包含spring boot的所有模块的用法,后来发现,有一大波优秀的系列文章和项目了,所以就没班门弄 ...

  6. poj 3280(区间DP)

    Cheapest Palindrome Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7869   Accepted: 38 ...

  7. python import模块的搜索路径

    当在py代码中import所依赖的模块时, python是从哪里找到这些模块呢,即模块的搜索路径是啥? 默认情况下,Python解释器会搜索当前目录.所有已安装的内置模块和第三方模块,搜索路径存放在s ...

  8. 原生DOM选择器querySelector和querySelectorAll

    在传统的 JavaScript 开发中,查找 DOM 往往是开发人员遇到的第一个头疼的问题,原生的 JavaScript 所提供的 DOM 选择方法并不多,仅仅局限于通过 tag, name, id ...

  9. Go语言建立一个最简单的服务端点

    handlers/handlers.go package handlers import ( "encoding/json" "net/http" ) func ...

  10. [水煮 ASP.NET Web API2 方法论](12-3)OData 查询

    问题 Web API 怎么支持通用的 OData 系统查询项,例如 $select 或 $filter. 解决方案 为了在 Web API 中启用查询项,我们需要在 Action 上使用 Enable ...