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 switch-case语句的实现 -- 字典模拟实现

    static void print_asru_status(int status, char *label) { char *msg = NULL; switch (status) { : msg = ...

  2. zuul进行rate limit

    maven <dependency> <groupId>com.marcosbarbero.cloud</groupId> <artifactId>sp ...

  3. javascript中的addEventListener与attchEvent

    1.addEventListener 该方法用于向指定元素添加事件句柄 浏览器的支持情况为chrome1.0.ie9+.fireFox1.0.opera7.0 该方法包含三个参数event, func ...

  4. 编写jquery Plugin

    编写jquery插件的原则 1.给$.fn绑定函数,实现插件的代码逻辑 2.插件函数最后要return this,以支持链式调用 3.插件函数要有默认值,绑定在$.fn.<pluginName& ...

  5. 【shell】shell中各种括号的作用()、(())、[]、[[]]、{}

    一.小括号,圆括号() 1.单小括号 ()    ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有 ...

  6. 【Android framework】AndroidManagerService初始化流程

    源码基于Android 4.4.   system_server的初始化 system_server受AMS管理,负责启动framework-res.apk和SettingsProvider.apk. ...

  7. python基础===解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX(转载)

    本文转自:解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX 从网上抓了一些字 ...

  8. auth src

    https://github.com/jbeverly/pam_ssh_agent_auth https://github.com/aur-archive/pam-face-authenticatio ...

  9. python并发模块之concurrent.futures(二)

    python并发模块之concurrent.futures(二) 上次我们简单的了解下,模块的一些基本方法和用法,这里我们进一步对concurrent.futures做一个了解和拓展.上次的内容点这. ...

  10. sicily 1063. Who's the Boss

    Time Limit: 1sec    Memory Limit:32MB  Description Several surveys indicate that the taller you are, ...