1.JavaScript中操作BOM对象
因为JavaScript是一个弱脚本类型语言,前面基础与Java差不多而且比JavaSE的规范相对宽松,所以就不做前面的笔记了^ - ^
BOM:浏览器对象模型
window
window代表浏览器窗口
window.alert(1)
undefined
window.innerHeight
578
window.innerWidth
785
window.outerHeight
824
Navigator
Navigator 封装了浏览器的信息
navigator.appName
"Netscape"
navigator.appCodeName
"Mozilla"
navigator.appVersion
"5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"
navigator.userActivation
UserActivation {hasBeenActive: true, isActive: true}
navigator.userAgent
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"
大多数时候不会使用navigator对象,因为会被人为修改
screen(屏幕尺寸)
screen.width
1536
screen.height
864
location
location代表当前页面的URL信息
origin: "https://cn.bing.com"
protocol: "https:"
host: "cn.bing.com"
hostname: "cn.bing.com"
port: ""
pathname: "/"
search: ""
hash: ""
href: "https://cn.bing.com/"
reload(重新加载)
assign(设置新的地址)
document
document代表当前的页面,HTML DOM文档数
document.title
"微软 Bing 搜索 - 国内版"
document.location
Location {href: "https://cn.bing.com/", ancestorOrigins: DOMStringList, origin: "https://cn.bing.com", protocol: "https:", host: "cn.bing.com", …}
获取具体的文档树节点
<dl id="app">
<dt>java</dt>
<dd>javase</dd>
<dd>javaee</dd>
</dl>
<script>
var dl = document.getElementById('app');
</script>
history(浏览器的历史记录)
history
History {length: 1, scrollRestoration: "auto", state: null}length: 1scrollRestoration: "auto"state: null__proto__: History
history.back(后退)
ƒ back() { [native code] }
history.forward(前进)
ƒ forward() { [native code] }
2.操作DOM对象
DOM:文档对象模型
核心
浏览器网页就是一个DOM树形结构
- 更新:更新DOM节点
- 遍历DOM节点:得到DOM节点
- 删除:删除一个DOM节点
- 添加:添加一个新的DOM节点
要操作一个DOM节点,必须先获取节点
获得DOM节点
<div id="father">
<h1>标题一</h1>
<p id="p1">p1</p>
<p class="p2">p2</p>
</div>
<script>
//对应CSS选择器
var h1 = document.getElementsByTagName('h1');
var p1 = document.getElementById('p1');
var p2 = document.getElementsByClassName('p2');
var father = document.getElementById('father');
var children = father.children;//获取父节点下的所有子节点
</script>
更新节点
<div id="id1">
</div>
<script>
var id1 = document.getElementById('id1');
</script>
- id1.innerText = ‘123’//修改文本的值
- id1.innerHTML=’ 123 ’
删除节点
删除节点的步骤:
先获取父节点,再通过父节点删除自己
p1.parentElement//获取父节点
<div id="father">…</div>
father.removeChild(p1)//用父节点删除自己
<p id="p1">p1</p>
插入节点
获得某个DOM节点,假设是空的,就可以直接通过innerHTML增加一个元素,若为非空则会覆盖原来的内容
那么就需要用追加操作
<p id="JS">JavaScript</p>
<div id="list">
<p id="ee">JavaEE</p>
<p id="se">JavaSE</p>
<p id="me">JavaME</p>
</div>
<script>
var js = document.getElementById('JS');
var list = document.getElementById('list');
list.appendChild(js)//追加
</script>
创建一个新的标签,实现插入
<script>
var js = document.getElementById('JS');
var list = document.getElementById('list');
var newP = document.createElement('p');
newP.id = 'newP';
newP.innerText = 'heelo';
list.appendChild(newP);
</script>
insert
<script>
var ee = document.getElementById('ee');
var JS = document.getElementById('JS');
var list = document.getElementById('list');
//要包含的节点 insertBefore(newNode,targetNode)
list.insertBefore(JS,ee);
3.操作表单
- 文本框 text
- 下拉框
- 单选框 radio
- 多选框 checkbox
- 隐藏域 hidden
- 密码框 password
获得要提交的信息
<form action="post">
<p>
<span>用户名:</span> <input type="text" id="username">
</p>
<p>
<span>性别:</span>
<input type="radio" name="sex" value="man" id="boy">男
<input type="radio" name="sex" value="women" id="girl">女
</p>
</form>
<script>
var input_text = document.getElementById('username');
var boy_radio= document.getElementById('boy');
var girl_radio = document.getElementById('girl');
//得到输入框的值
input_text.value
//修改输入框的值
input_text.value = '123'
//对于单选框,多选框等固定的值。boy_radio.value只能取到当前的值
boy_radio.checked //根据返回值判断
MD5加密表单
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.bootcdn.net/ajax/libs/blueimp-md5/2.17.0/js/md5.js"></script>//MD5加密工具类
</head>
<body>
<form action="#" method="post" onsubmit="return aaa()">
<p>
<span>用户名:</span> <input type="text" id="username" name="username">
</p>
<p>
<span>密码:</span> <input type="password" id="input_password" >
</p>
<input type="hidden" id="md5-password" name="password">
<button type="submit" onclick="a()">提交</button>
</form>
<script>
function a() {
var uname = document.getElementById('username');
var pwd = document.getElementById('password');
var md5pwd = document.getElementById('md5-password');
//MD5算法
md5pwd.value = md5(pwd.value);
}
</script>
4.jQuery
jQuery库:里面存在大量的JavaScript函数
获取jQuery
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
//CDN引入
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
</head>
<body>
</body>
</html>
jQuery公式:$(selector).action()
选择器
//原生js
//标签选择器
document.getElementsByTagName()
//id选择器
document.getElementById()
//类选择器
document.getElementsByClassName()
//jQuery
$('p').click()//标签选择器
$('#id').click()//id选择器
$('.class').click()//类选择器
文档工具站:https://jquery.cuishifeng.cn/
事件
-
鼠标事件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script> <style> #divMove{ width: 500px; height: 500px; border: 1px solid red; } </style> </head> <body> mouse: <span id="mouseMove"></span> <div id="divMove"> 在这里移动鼠标试试 </div> <script> //当网页元素加载完毕之后,响应事件 $(document).ready(function () { $('#divMove').mousemove(function(e){ $('#mouseMove').text('x'+e.pageX+'y'+e.pageY) }) }) </script> </body> </html>
-
键盘事件
-
其他事件
JavaScript完结撒花!!!!!!