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. Python中的异常处理 -- (转)

    python中的异常   异常是指程序中的例外,违例情况.异常机制是指程序出现错误后,程序的处理方法.当出现错误后,程序的执行流程发生改变,程序的控制权转移到异常处理. Exception类是常用的异 ...

  2. Python ctypes的byref和pointer有啥区别

    byref(n)返回的相当于C的指针右值&n,本身没有被分配空间: >>> from ctypes import *>>> n = c_int(0)> ...

  3. Java的9种基本数据类型的大小,以及他们的封装类

    由于java程序是运行在虚拟机之上的,所以java的基本数据类型的大小是确定的,不会随着操作系统的位数的改变而改变. 在计算机中,存储的是0,1,0,1这样的二进制位,表示为bit,1Byte = 8 ...

  4. python基础===函数的几个要点

    函数 可接受任意数量参数的函数 位置参数   和  关键字参数 为了能让一个函数接受任意数量的位置参数,可以使用一个*参数. def avg(first, *r): return (first + s ...

  5. quazip 在windows msvc 2005 下的编译

    quazip 在windows  msvc 2005 下的编译 http://blog.csdn.net/v6543210/article/details/11661427

  6. 微信支付之SHA256签名失败

    在接微信支付的时候,或多或少会遇到签名失败,本人接入的时候也遇了不少次: 总结如下: 1.参数没有经过ASCII排序 2.参数包含中文未经过UTF-8标准转化加密后的签名不对应(经本人测验:加密算法要 ...

  7. 利用BeanUtils工具类封装表单数据

    一.BeanUtils工具类的使用 1.首先导入BeanUtils工具类的jar包 commons-beanutils-1.8.0.jar commons-logging-1.1.1.jar 2.se ...

  8. 【python】日志系统

    来源: http://blog.csdn.net/wykgf/article/details/11576721 http://www.jb51.net/article/42626.htm http:/ ...

  9. HDU 3045 picnic cows(斜率DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3045 题目大意:有n个数,可以把n个数分成若干组,每组不得小于m个数,每组的价值=除了该组最小值以外每 ...

  10. ES6 一种新的数据结构--Map跟Objct的区别

    var map1=new Map(); var keys={key:'val'}; map1.set(keys,'content'); ==> {Object {key: "val&q ...