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. C++获取系统时间的方法

    //首先是了解这个结构体,_SYSTEMTIME ,然后通过系统函数GetLocalTime往这个结构体的变量中写入当前系统时间typedef struct _SYSTEMTIME { WORD wY ...

  2. hdfs基本思想

    1.hdfs的优缺点 (1)不适合大量小文件存储: (2)不适合并发写入,不支持文件随机修改:(只能append追加) (3)不支持随机读等低延时的访问方式 2.基本思想 主从结构 主节点, name ...

  3. Java多态的实现原理

    1.多态的定义:指允许不同类的对象,对同一消息作出响应: 即同一消息可以根据发送对象的不同采用多种不同的行为方式: 2.多态的实现技术:动态绑定: 指在执行期间判断所引用对象的实际类型,根据其实际的类 ...

  4. Coursera课程《Machine Learning》吴恩达课堂笔记

    强烈安利吴恩达老师的<Machine Learning>课程,讲得非常好懂,基本上算是无基础就可以学习的课程. 课程地址 强烈建议在线学习,而不是把视频下载下来看.视频中间可能会有一些问题 ...

  5. 仿照linux dpm机制,实现自己的dpm【转】

    转自:http://blog.csdn.net/lixiaojie1012/article/details/23788713 前边我们讨论分析了linux 内核的dpm实现,分析的目的在于学以致用:在 ...

  6. 给mongodb设置密码权限

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

  7. LightOJ 1282

    Leading and Trailing Time Limit: 2000MS   Memory Limit: 32768KB   64bit IO Format: %lld & %llu S ...

  8. Python 什么是ORM?

    关系映射 性能比源生sql效率略差一些 操作性更简单,快捷 Django的orm和sqlalchamy 区别 sqlalchamy没有django的功能全,不支持双下划线的连表跨表操作 sqlalch ...

  9. hdu 3435(KM算法最优匹配)

    A new Graph Game Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  10. 如何实现artTemplate模板的可重用性,以此框架打造自己的自定义组件

    问题的提出: 我们为什么非得要引入artTemplate来进行JSON数据的渲染呢? http://dagmom.iteye.com/blog/1671498http://bbs.csdn.net/t ...