js

BOM(浏览器对象模型)

  • 由上图可知,window对象是BOM的核心对象,所有对象都是通过它延伸出来的,也可以称为window的子对象。
  • DOM是BOM的一部分

window对象

所有浏览器都支持window对象,它表示浏览器的接口。

常用window方法

  • window.innerHeight::浏览器窗口的内部高度
  • window.innerWidth :浏览器窗口的内部宽度
  • window.open:打开新窗口
  • window.close:关闭当前窗口

window子对象

navigator对象

navigator.appName		// Web浏览器全称
navigator.appVersion // 文本浏览器厂商和版本的详细字符串
navigator.userAgent // 客户端绝大部分信息
navigator.platform // 浏览器运行的操作系统

开头window可不写,BOM默认window开头

screen对象

screen.avallWidth		// 可用的屏幕宽度
screen.avallHeight // 可用的屏幕高度

history对象

window.history 对象包含浏览器的历史,浏览历史对象

history.forward()	// 前进一页
history.back() // 后退一页

location对象

location.href	// 获取URL
location.href="URL" // 跳转到指定页面
location.reload // 重新加载页面

弹出框

可以在js中创建三种消息框,分别是:警告框确认框和提示框

警告框

用于确保用户可以得到某些信息

当警告框出现时,用户需要点击确定按钮才能继续操作

例:

alert("hello world");

确认框

用于使用户可以验证或者接受某些信息

当确认框出现时,用户需要点击确定或者取消按钮才能继续操作

confirm("Are you sure")

提示框

用于提示用户进入页面前输入某个值

当提示框出现时,用户需要输入某个值,用户需要点击确定或者取消按钮才能继续操作

如果用户点击确认,那么返回值为输入的值,如果用户点击取消,那么返回的值为null

prompt("请输入","答案")

计时事件

setTimeout(定时器,异步运行)

var t = setTimeout('js语句','毫秒')

setInterval(实时刷新)

// 在指定时间之后执行一次相应函数
var t = setInterval('js语句',毫秒)

注意:如果要求在每隔一个固定的时间间隔后就精确地执行某动作,最好使用setInterval;如果不想连续调用产生互相干扰的问题,而且需要进行复杂计算的时候,推荐使用setTimeout

DOM(文档对象模型)

DOM是一套对文档内容进行结构化展示,并让js操作html元素而制定的一个规范

由上图可知,DOM规定html文档的每个成分都是一个节点

  • 文档节点(document对象):代表整个文档
  • 元素节点(element对象):代表一个元素(标签)
  • 属性节点(attribute对象):代表一个属性

查找标签

直接查找

document.getElementById			根据ID获取一个标签
document.getElementsByClassName 根据class属性获取
document.getElementsByName 根据标签名获取标签合集

间接查找

parentElement		父节点标签元素

节点操作

创建节点

createElement(标签名)

var divEle = document.createElement("div")

插入节点

//追加一个子节点(作为最后的子节点)
somenode.appendChild(newnode)
//把增加的节点放到某个节点的前边
somenode.insertBefore(newnode,某个节点) 例:
var imgEle = document.createElement("img");
imgEle.setAttribute("src", https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1906254523,3408854892&fm=26&gp=0.jpg);
var d1Ele = document.getElementById("d1");
d1Ele.appendChild(imgEle);

删除节点

获得要删除的元素,通过父元素调用该方法删除

somenode.removeChild(要删除的节点)

替换节点

somenode.replaceChild(newnode,某个节点)

属性节点

获取文本节点的值

var divEle = document.getElementById('d1')
diveEle.innerText
divEle.innerHTML

设置文本节点的值

var divEle = document.getElementById('d1')
diveEle.innerText='<p>1<p>'
divEle.innerHTML='<p>2<p>'

注意

diveEle.innerText设置文本节点值只会把代码写出来,无法识别js代码,而divEle.innerHTML可以做到

attribute操作
var divEle = document.getElementById('d1');
divEle.setAttribute("age","18")
divEle.getAttribute("age")
divEle.removeAttribute("age") // 自带的属性还可以直接.属性名来获取和设置
imgEle.src
imgEle.src="..."

事件

JS是以事件驱动为核心的一门语言

常用事件

onclick        当用户点击某个对象时调用的事件句柄。
ondblclick 当用户双击某个对象时调用的事件句柄。 onfocus 元素获得焦点。 // 练习:输入框
onblur 元素失去焦点。 应用场景:用于表单验证,用户离开某个输入框时,代表已经输入完了,我们可以对它进行验证.
onchange 域的内容被改变。 应用场景:通常用于表单元素,当元素内容被改变时触发.(select联动) onkeydown 某个键盘按键被按下。 应用场景: 当用户在最后一个输入框按下回车按键时,表单提交.
onkeypress 某个键盘按键被按下并松开。
onkeyup 某个键盘按键被松开。
onload 一张页面或一幅图像完成加载。
onmousedown 鼠标按钮被按下。
onmousemove 鼠标被移动。
onmouseout 鼠标从某元素移开。
onmouseover 鼠标移到某元素之上。 onselect 在文本框中的文本被选中时发生。
onsubmit 确认按钮被点击,使用的对象是form。

绑定方式

方式一

<div id='d1' onclick='changecolor(this);'>Click Me
<script>
function changecolor(ths) {
ths.style.background-color='green'
}
</script> </div>

注意

this是实参,表示触发事件的当前元素

函数定义过程中的ths为形参

方式二:

<div id='d2'>Click Me
<script>
var divEle2 = document.getElementById('d2')
divEle2.onclick=function() {
this.innerText='啊~'
}
</script>
</div>

jQuery

jQuery介绍

1.jQuery是一个轻量级的,可兼容多浏览器的JavaScript库

2.jQuery是用户能更方便地处理HTML Document、Events、实现动画效果、方便与Ajax交互,能够极大的简化JavaScript编程。

jQuery的优势

1.jQuery核心的js文件才几十kb,不会影响页面的加载

2.有丰富的jQuery选择器,用起来非常方便

3.可进行链式操作,jQuery可以把多个操作写在一个代码里,更加简洁

4.事件、样式、动画支持,jQuery简化了js操作css的代码

5.Ajax操作支持

6.跨浏览器兼容

7.插件扩展开发

jQuery初识

day 48的更多相关文章

  1. From 202.97.60.193 icmp_seq=48 Time to live exceeded

    从浙江某电信ip的服务器上 ping 大陆外某个外网地址不通,报如下信息: From 202.97.60.193 icmp_seq=48 Time to live exceeded google,百度 ...

  2. 48. 二叉树两结点的最低共同父结点(3种变种情况)[Get lowest common ancestor of binary tree]

    [题目] 输入二叉树中的两个结点,输出这两个结点在数中最低的共同父结点. 二叉树的结点定义如下:  C++ Code  123456   struct BinaryTreeNode {     int ...

  3. MongoDB 由于目标计算机积极拒绝,无法连接 2014-07-25T11:00:48.634+0800 warning: Failed to connect to 127.0.0.1:27017, reason: errno:10061

    转载自:http://www.cnblogs.com/xiaoit/p/3867573.html 1:启动MongoDB 2014-07-25T11:00:48.634+0800 warning: F ...

  4. Selenium2学习-042-Selenium3启动Firefox Version 48.x浏览器(ff 原生 geckodriver 诞生)

    今天又被坑了一把,不知谁把 Slave 机的火狐浏览器版本升级为了 48 的版本,导致网页自动化测试脚本无法启动火狐的浏览器,相关的网页自动化脚本全线飘红(可惜不是股票,哈哈哈...),报版本不兼容的 ...

  5. RPM方式安装MySQL5.5.48 (Aliyun CentOS 7.0 & 卸载MySQL5.7)

    环境是阿里云的CentOS7.0,更新了yum源(更新yum源请参考https://help.aliyun.com/knowledge_detail/5974184.html)之后先是尝试安装了MyS ...

  6. [网站公告]3月10日23:00-4:00阿里云SLB升级,会有4-8次连接闪断

    大家好,阿里云将于3月10日23:00-4:00对负载均衡服务(SLB)做升级操作,升级期间SLB网络连接会有约4-8次闪断.由此给您带来麻烦,敬请谅解! 阿里云SLB升级公告内容如下: 尊敬的用户: ...

  7. 分享Kali Linux 2016.2第48周虚拟机

    分享Kali Linux 2016.2第48周虚拟机该虚拟机使用Kali Linux 2016.2第48周的64位镜像安装而成.基本配置如下:(1)该系统默认设置单CPU双核,内存为2GB,硬盘为50 ...

  8. 分享Kali Linux 2016.2第48周镜像文件

    分享Kali Linux 2016.2第48周镜像文件Kali Linux官方于11月27日发布Kali Linux 2016.2的第48周镜像.这次延续以往规律,仍然是11个镜像文件.默认的Gnom ...

  9. 【MongoDB】2014-07-25T11:00:48.634+0800 warning: Failed to connect to 127.0.0.1:27017, reason: errno:10061 由于目标计算机积极拒绝,无法连接。

    1:启动MongoDB 2014-07-25T11:00:48.634+0800 warning: Failed to connect to 127.0.0.1:27017, reason: errn ...

  10. mongod 命令执行发现已经有进程在运行mongod数据库--errno:48 Address already in use for socket: 0.0.0.0:27017

    错误信息: listen(): bind() failed errno:48 Address already in use for socket: 0.0.0.0:27017 27017端口已经被占用 ...

随机推荐

  1. XLNet原理探究

    1. 前言 XLNet原文链接是CMU与谷歌大脑提出的全新NLP模型,在20个任务上超过了BERT的表现,并在18个任务上取得了当前最佳效果,包括机器问答.自然语言推断.情感分析和文档排序. 这篇新论 ...

  2. linux 环境下 apache tomcat 安装jenkins

    参考文档: https://blog.51cto.com/12629984/1980034 https://www.cnblogs.com/lxs1314/p/8567652.html https:/ ...

  3. 第17节-BLE安全管理概述

    安全管理是BLE中最复杂的内容,涉及LL层.SM层.GAP层 一.妈妈的担心 1. 白名单: 妈妈说,你只能跟A.B.C这3个好孩子玩:他们打电话给你,你才可以出去玩. A.B.C三人,就在妈妈的“白 ...

  4. C++随机马赛克图程序

    效果: 或者灰度,cell大小可调 代码: #include <opencv2\opencv.hpp> #include <Windows.h> struct paramete ...

  5. Oracle告Google输了

    Oracle告Google输了 boxi • 2016-05-27 • 大公司 Google表示,陪审团的认定代表了Android生态体系.Java开发社区以及依靠开放免费编程语言开发创新消费者产品的 ...

  6. angularjs 运行时报错ERROR in node_modules/rxjs/internal/types.d.ts(81,44): error TS1005: ';' expected. node_modules/rxjs/internal/types.d.ts(81,74): error TS1005: ';' expected. node_modules/rxjs/internal/t

    解决方法: 在package.json文件里面 修改 "rxjs": "^6.0.0" 为 "rxjs": "6.0.0" ...

  7. nginx 403问题

    错误排查 https://blog.csdn.net/onlysunnyboy/article/details/75270533 关闭 SELinux https://blog.csdn.net/ed ...

  8. [BZOJ1040][CODEVS1423][ZJOI2008]骑士

    题目描述 Description Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬.最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略 ...

  9. 6.Vue的Axios异步通信

    1.什么是Axios Axios 是一个开源的可以用在浏览器端和 NodeJS 的异步通信框架,主要作用就是实现 AJAX 异步通信,其功能特点如下: 从浏览器中创建 XMLHttpRequests ...

  10. Linux性能优化实战学习笔记:第三十三讲

    一.上节回顾 前几节,我们一起学习了文件系统和磁盘 I/O 的工作原理,以及相应的性能分析和优化方法.接下来,我们将进入下一个重要模块—— Linux 的网络子系统. 由于网络处理的流程最复杂,跟我们 ...