JavaScript高级(BOM+DOM)学习
文章目录
- 1.DOM简单学习
- 2.事件简单学习
- 3.点灯开关练习
- 4.BOM
- 4.1 BOM的概念
- 4.2 BOM的功能
- 4.3 BOM对象
- 4.4 Window :窗口对象
- 4.5 Location:地址栏对象
- 4.6 History:历史记录对象
- 5.DOM
- 5.1 DOM 的概念
- 5.2 DOM 的功能
- 5.3 DOM 的分类
- 5.4 核心 DOM
- 5.4.1 Document:文档对象
- 5.4.2 Element:元素对象
- 5.4.3 Node:节点对象
- 5.5 HTML DOM
- 5.6 动态表格练习
- 6.事件监听机制
- 7.表格全选练习
- 8.表单校验练习
1.DOM简单学习
1.DOM的功能
- 控制HTML文档的内容
2.通过元素的 id 获取元素对象:Element
document.getElementById("id值");
3.操作 Element 对象
修改属性值
1.获取元素对象
2.查看 API 文档,找其中有哪些属性可以设置
3.修改属性值
<body> <img id="light" src="img/off.gif"> <script>// 获取元素对象var light = document.getElementById("light");alert();// 修改属性值light.src = "img/on.gif"; </script> </body>
修改标签体内容:
1.获取元素对象
2.使用 innerHTML 属性修改标签体内容
<body> <h1 id="title">标题1</h1> <script>// 获取元素对象var title = document.getElementById("title");alert();// 使用 innerHTML 属性修改标签体内容title.innerHTML = "标题2"; </script> </body>
2.事件简单学习
1.事件的功能
- 当 html 组件被执行了操作后,触发 js 代码的执行。
2.如何绑定事件(方式)
直接在 html 标签上,指定事件的属性(要执行的操作),属性值就是 js 代码
onclick:单击事件
<img src="img/off.gif" onclick="alert('我被点了')">
通过 js 获取元素对象,指定事件属性(要执行的操作),属性值设置一个函数
<body> <img id="light" src="img/off.gif"/> <script>// 设置一个函数function fun() {alert("点了");}// 获取元素对象var light = document.getElementById("light");// 指定事件属性light.onclick = fun(); </script> </body>
3.点灯开关练习
1.效果图
2.代码实现
<body>
<img id="light" src="img/off.gif">
<script>// 获取元素对象var light = document.getElementById("light");// 设置 flag 表示灯的开关,false 表示关闭,true 表示打开var flag = false;// 绑定单击事件light.onclick = function () {// 如果灯打开if(flag){// 修改属性值light.src = "img/off.gif";// 修改 flagflag = false;}else { // 如果灯关闭// 修改属性值light.src = "img/on.gif";// 修改 flagflag = true;}}
</script>
</body>
4.BOM
4.1 BOM的概念
- BOM(Browser Object Model), 浏览器对象模型。
4.2 BOM的功能
- 将浏览器的各个组成部分封装成对象。
4.3 BOM对象
- Navigator:浏览器对象
- Window:窗口对象
- Location:地址栏对象
- History:历史记录对象
- Screen:显示器屏幕对象
4.4 Window :窗口对象
1.创建
- Window 对象不需要创建可以直接使用
window.方法名();
- window 引用可以省略
方法名();
2.方法
- 与弹出框有关的方法
1.alert():显示带有一段消息和一个确认按钮的警告框。
alert("123");
2.confirm():显示带有一段消息以及确认按钮和取消按钮的对话框。(点击确定按钮,返回 true;点击取消按钮,返回 false)
var flag = confirm("确定退出吗?");if(flag){alert("退出成功");}else{alert("手别抖");}
3.prompt():显示可提示用户输入的对话框。(返回用户输入的值)
prompt("请输入:");
- 与打开关闭有关的方法
1.open():打开一个新的浏览器窗口(返回新的 Window 对象)
open("https://www.baidu.com");
2.close():关闭浏览器窗口(关闭调用该方法的窗口)
close();
3.与定时器有关的方法
- setTimeout():在指定的毫秒数后调用函数或计算表达式。
// 一次性定时器
setTimeout("alert('boom');",3000);
参数:
1.js代码或者方法对象
2.毫秒值
返回值:唯一标识,用于取消定时器
- clearTimeout():取消由 setTimeout() 方法设置的 timeout。
// 一次性定时器
var id = setTimeout("alert('boom')",3000);
// 取消一次性定时器
clearTimeout(id);
- setInterval():按照指定的周期(以毫秒计)来调用函数或计算表达式。
// 循环定时器
setInterval(fun,3000);
function fun(){alert('boom');
}
- clearInterval():取消由 setInterval() 设置的 timeout。
// 循环定时器
var id = setInterval(fun,3000);
function fun(){alert('boom');
}
// 取消循环定时器
clearInterval(id);
3.属性
- 获取其他BOM对象:
history
location
Navigator
Screen - 获取 DOM 对象(document是Window的 一个属性)
document.方法名();
4.轮播图练习
- 用来实现几张图片之间的循环切换
代码实现
<body>
<img id="img" src="img/banner_1.jpg">
<script>/*分析:1.在页面上使用img标签展示图片2.定义一个方法,修改图片对象的src属性3.定义一个定时器,每隔3秒调用方法一次。*/var num = 1;// 定义修改 src 属性函数function fun() {num++;// 如果 num > 3 ,就让 num = 1if(num > 3){num = 1;}// 获取元素对象var img = document.getElementById("img");// 修改 src 属性img.src = "img/banner_"+num+".jpg";}// 定义循环定时器setInterval(fun,2000);
</script>
4.5 Location:地址栏对象
1.创建
location;
window.location;
2.方法
- reload():重新加载当前文档,即刷新。
location.reload();
3.属性
- href:设置或返回完整的 URL。
// 获取 URL
var href = location.href;
//设置 URL
location.href = "https://www.baidu.com";
4.自动跳转页面练习
- 效果图
- 代码实现
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title><style>p{text-align: center;}span{color: red;}</style></head><body><p><span id="time">3</span>秒后跳转到首页</p><script>/*分析:1.显示页面效果2.倒计时读秒效果实现2.1 定义一个方法,修改 time 内容,时间--2.2 定义一个定时器,1 秒执行一次该方法3.在方法中判断时间如果等于 0 ,则跳转到首页*/// 获取 time 元素对象var time = document.getElementById("time");// 定义倒计时var second = 3;// 定义修改 time 内容函数function showTime() {second--;// 当时间等于 0 时跳转到首页if(second < 1){location.href = "https://www.baidu.com";}time.innerText = second;}// 定义计时器setInterval(showTime,1000);</script></body></html>
4.6 History:历史记录对象
1.创建
history;
window.history;
2.方法
- back():加载 history 列表中的前一个 URL。(后退)
history.back();
- forward():加载 history 列表中的下一个 URL。(前进)
history.forward();
- go(参数):加载 history 列表中的某个具体页面。
history.go(参数);
参数为正数,前进几个历史记录;参数为负数,后退几个历史记录。
3.属性
- length:返回当前窗口历史列表中的 URL 数量。
history.length;
5.DOM
5.1 DOM 的概念
- DOM(Document Object Model),文档对象模型。
5.2 DOM 的功能
- 将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行 CRUD 的动态操作。
5.3 DOM 的分类
- W3C DOM 标准被分为 3 个不同的部分:
- 核心 DOM - 针对任何结构化文档的标准模型
- Node:节点对象,其他 5 个的父对象
- Document:文档对象
- Element:元素对象
- Attribute:属性对象
- Text:文本对象
- Comment:注释对象
- XML DOM - 针对 XML 文档的标准模型
- HTML DOM - 针对 HTML 文档的标准模型
- 核心 DOM - 针对任何结构化文档的标准模型
5.4 核心 DOM
5.4.1 Document:文档对象
1.创建
document;
2.方法
获取Element对象
1.getElementById():根据 id 属性值获取元素对象。(id属性值一般唯一)document.getElementById("div1");
2.getElementsByTagName():根据元素名称获取元素对象们。(返回值是一个数组)
document.getElementsByTagName("div");
3.getElementsByClassName():根据 Class 属性值获取元素对象们。(返回值是一个数组)
document.getElementsByClassName("cls1");
4.getElementsByName():根据 name 属性值获取元素对象们。(返回值是一个数组)
document.getElementsByName("username");
创建其他DOM对象
1.createAttribute(name):创建属性节点。2.createComment():创建注释节点。
**3.createElement():创建元素节点。**重要
document.createElement("table");
4.createTextNode():创建文本节点。
5.4.2 Element:元素对象
1.创建
- 通过document来创建
document.createElement("table");
2.方法
- setAttribute():设置属性
// 给链接添加 href var element_a = document.getElementsByTagName("a")[0]; element_a.setAttribute("href","https://www.baidu.com");
- removeAttribute():删除属性
// 给链接删除 href var element_a = document.getElementsByTagName("a")[0]; element_a.removeAttribute("href");
5.4.3 Node:节点对象
1.特点
- 所有dom对象都可以被认为是一个节点
2.方法
appendChild():向节点的子节点列表的结尾添加新的子节点。
var div1 = document.getElementById("div1"); var div3 = document.createElement("div"); div3.setAttribute("id","div3"); div3.innerText = "div3"; // 给 div1 新增子节点 div3 div1.appendChild(div3);
removeChild():删除(并返回)当前节点的指定子节点。
var div1 = document.getElementById("div1"); var div2 = document.getElementById("div2"); // 给 div1 删除子节点 div2 div1.removeChild(div2);
replaceChild():用新节点替换一个子节点。
3.属性
- parentNode:返回节点的父节点。
var div2 = document.getElementById("div2"); // 获取 div2 的父节点 var div2_parent = div2.parentNode;
5.5 HTML DOM
1.标签体内容的设置和获取
// 获取
元素对象.innerHTML;
// 设置
元素对象.innerHTML = "设置内容";
// 追加
元素对象.innerHTML += "追加内容";
2.使用 html 元素对象的属性,先查看 API 文档,该元素对象有哪些属性。
// 修改属性值
元素对象.属性 = "属性值";
3.控制元素样式
- 使用元素对象的 style 属性来设置
div1.style.border = "1px solid red";
- 提前定义好类选择器的样式,通过元素的 className 属性来设置其 class 属性值。
// 定义类选择器 <style>.d1{border: 1px solid;} </style> // 通过元素的 className 属性来设置其 class 属性值 <script>var div1 = document.getElementById("div1");div1.className = "d1"; </script>
5.6 动态表格练习
1.效果图
2.代码实现
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<style>div{text-align: center;margin: 50px;}table{border: 1px solid;margin: auto;width: 500px;}td,th{border: 1px solid;}
</style>
<body>
<div><input type="text" id="id" placeholder="请输入"><input type="text" id="name" placeholder="请输入姓名"><input type="text" id="gender" placeholder="请输入性别"><input type="button" id="btn_add" value="添加">
</div>
<table><tr><th>编号</th><th>姓名</th><th>性别</th><th>操作</th></tr>
</table>
<script>// 1.获取文本框内容的对象var ele_id = document.getElementById("id");var ele_name = document.getElementById("name");var ele_gender = document.getElementById("gender");var ele_btn_add = document.getElementById("btn_add");//2.获取 table 对象var ele_table = document.getElementsByTagName("table")[0];//3.定义将文本框内容放入 table 的函数ele_btn_add.onclick = function () {ele_table.innerHTML += "<tr>"+"<td>"+ele_id.value+"</td>"+"<td>"+ele_name.value+"</td>"+"<td>"+ele_gender.value+"</td>"+"<td><a href='javascript:void(0);' οnclick='delTr(this)'>删除</a></td>"+"</tr>";}//4.定义删除 tr 的函数function delTr(a_del){var table = a_del.parentNode.parentNode.parentNode;var tr = a_del.parentNode.parentNode;table.removeChild(tr);}
</script>
</body>
</html>
6.事件监听机制
1.事件的概念
- 当 html 组件被执行了操作后,触发 js 代码的执行。
2.常见的事件
点击事件
1.onclick:单击事件
2.ondblclick:双击事件焦点事件
1.onblur:失去焦点(一般用于表单验证)
document.getElementById("username").onblur = function(){alert("失去焦点了"); }
2.onfocus:元素获得焦点。
3.加载事件
- onload:一张页面或一幅图像完成加载。
// 等页面加载完成后再执行 window.onload = function(){}
4.鼠标事件
- onmousedown:鼠标按钮被按下。(定义方法时,定义一个形参,接受 event 对象。event 对象的 button 属性可以获取鼠标按钮键哪个被点击了。0是左键,1是滚轮,2是右键)
document.getElementById("username").onmousedown = function(event){alert(event.button); }
- onmouseup:鼠标按键被松开。
- onmousemove:鼠标被移动。
- onmouseover:鼠标移到某元素之上。
- onmouseout:鼠标从某元素移开。
5.键盘事件
- onkeydown:某个键盘按键被按下。
document.getElementById("username").onkeydown = function(event){alert(event.keyCode); }
- onkeyup:某个键盘按键被松开。
- onkeypress:某个键盘按键被按下并松开。
6.选择和改变
- onchange:域的内容被改变。
document.getElementById("username").onchange = function(){alert("内容被改变了"); }
- onselect:文本被选中。
7.表单事件
onsubmit:确认按钮被点击。(方法返回 false 则表单被阻止提交)
document.getElementById("form").onsubmit = function(){var flag = false;return flag; }
<script>function checkForm(){return false;} </script> // 或在标签内指定属性
onreset:重置按钮被点击。
7.表格全选练习
1.效果图
2.实现功能
- 全选
- 全不选按
- 反选
- 点击第一个按钮为全选
- 让鼠标移到行上背景色变为粉色,移出行背景色变为白色
3.代码实现
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>table{margin-left: 30%;margin-top: 30px;width: 500px;}th,td{text-align: center;border: 1px solid;}div{margin-left: 30%;margin-top: 10px;}.over{background-color: pink;}.out{background-color: white;}</style><script>// 1.在页面加载完成后绑定事件window.onload = function () {// 2.给全选按钮绑定单击事件var btn_selectAll = document.getElementsByName("selectAll")[0];btn_selectAll.onclick = function () {// 获取所有的 checkboxvar cbs = document.getElementsByName("cb");for (var i = 0; i < cbs.length; i++) {// 设置每一个 cb 的 checkedcbs[i].checked = 1;}}// 3.给全不选按钮绑定单击事件var btn_unSelectAll = document.getElementsByName("unSelectAll")[0];btn_unSelectAll.onclick = function () {// 获取所有的 checkboxvar cbs = document.getElementsByName("cb");for (var i = 0; i < cbs.length; i++) {// 设置每一个 cb 的 checkedcbs[i].checked = 0;}}// 4.给反选按钮绑定单击事件var btn_selectRev = document.getElementsByName("selectRev")[0];btn_selectRev.onclick = function () {// 获取所有的 checkboxvar cbs = document.getElementsByName("cb");for (var i = 0; i < cbs.length; i++) {// 设置每一个 cb 的 checkedcbs[i].checked = !cbs[i].checked;}}// 5.点击第一个按钮为全选var btn_first = document.getElementById("first");btn_first.onclick = function () {// 获取所有的 checkboxvar cbs = document.getElementsByName("cb");for (var i = 0; i < cbs.length; i++) {// 设置每一个 cb 的 checkedcbs[i].checked = cbs[0].checked;}}// 6.给所有 tr 绑定鼠标移到元素之上和移出元素事件var trs = document.getElementsByTagName("tr");for (var i = 0; i < trs.length; i++) {// 移到元素之上trs[i].onmouseover = function () {this.className = "over";}// 移出元素trs[i].onmouseout = function () {this.className = "out";}}}</script>
</head>
<body>
<table><caption>学生信息表</caption><tr><th><input type="checkbox" name="cb" id="first"></th><th>编号</th><th>姓名</th><th>性别</th></tr><tr><td><input type="checkbox" name="cb"></td><td>1</td><td>小明</td><td>男</td></tr><tr><td><input type="checkbox" name="cb"></td><td>2</td><td>小刚</td><td>男</td></tr><tr><td><input type="checkbox" name="cb"></td><td>3</td><td>小红</td><td>女</td></tr></table>
<div><input type="button" value="全选" name="selectAll"><input type="button" value="全不选" name="unSelectAll"><input type="button" value="反选" name="selectRev">
</div>
</body>
</html>
8.表单校验练习
1.效果图
2.实现功能
- 提交校验用户名和密码
- 用户名和密码框离焦后校验用户名和密码
3.代码实现
表单检验的html
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>注册页面</title><link rel="stylesheet" href="css/注册页面样式表.css"><script src="js/表单校验.js"></script> </head> <body> <div class="rg_layout"><!--左侧注册提示--><div class="rg_left"><p class="rg_left_chinese">新用户注册</p><p class="rg_left_english">USER REGISTER</p></div><!--中间填写注册信息--><div class="rg_center"><div><form id="form"><table><tr><td class="td_left"><label for="username">用户名</label></td><td class="td_right"><input type="text" name="username" id="username" placeholder="请输入用户名"><span id="s_username"></span></td></tr><tr><td class="td_left"><label for="password">密码</label></td><td class="td_right"><input type="password" name="password" id="password" placeholder="请输入密码"><span id="s_password"></span></td></tr><tr><td class="td_left"><label for="email">Email</label></td><td class="td_right"><input type="email" name="email" id="email" placeholder="请输入邮箱"></td></tr><tr><td class="td_left"><label for="name">姓名</label></td><td class="td_right"><input type="text" name="name" id="name" placeholder="请输入姓名"></td></tr><tr><td class="td_left"><label for="phone">手机号</label></td><td class="td_right"><input type="text" name="phone" id="phone" placeholder="请输入手机号"></td></tr><tr><td class="td_left">性别</td><td class="td_right"><input type="radio" name="gender" value="male">男<input type="radio" name="gender" value="female">女</td></tr><tr><td class="td_left">出生日期</td><td class="td_right"><input type="date" name="birthday" id="birthday"></td></tr><tr><td class="td_left"><label for="checkcode">验证码</label></td><td class="td_right"><input type="text" name="checkcode" id="checkcode"><img id="img_check" src="img/verify_code.jpg"/></td></tr><tr><td colspan="2" align="center"><input id="btn_sub" type="submit" value="注册"></td></tr></table></form></div></div><!--右侧登陆提示--><div class="rg_right"><p class="rg_right_login">已有账号?<a href="#">立即登陆</a></p></div></div> </body> </html>
注册页面样式表css
*{margin: 0px;padding: 0px;box-sizing: border-box; }body{background: url("../img/register_bg.png") no-repeat center; }.rg_layout{width: 900px;height: 500px;border: 8px solid #EEEEEE;background-color: white;/*让div水平居中*/margin: auto;margin-top: 25px; }.rg_left{/*border: 1px solid red;*/float: left;margin: 15px; } .rg_left_chinese{color:#FFD026;font-size: 20px; } .rg_left_english{color:#A6A6A6;font-size: 20px;}.rg_center{/*border: 1px solid red;*/float: left;margin: 15px; } .td_left{width: 100px;text-align: right;height: 45px; } .td_right{padding-left: 50px ; } #username,#password,#email,#name,#phone,#birthday,#checkcode{width: 251px;height: 32px;border: 1px solid #A6A6A6 ;/*设置边框圆角*/border-radius: 5px;padding-left: 10px; } #checkcode{width: 110px; } #img_check{height: 32px;/*设置垂直居中*/vertical-align: middle; } #btn_sub{width: 150px;height: 40px;margin-top: 15px;margin-left: 50px;background-color: #FFD026;border: 1px solid #FFD026 ; }.rg_right{/*border: 1px solid red;*/float: right;margin: 15px; } .rg_right_login{font-size: 15px; } .rg_right_login a{color: pink; }#s_username{color: red; }#s_password{color: red; }
表单校验的js
window.onload = function () {// 1.给表单绑定 onsubmit 事件document.getElementById("form").onsubmit = function () {return checkUsername() && checkPassword();}// 4.给用户名和密码框分别绑定离焦事件document.getElementById("username").onblur = checkUsername;document.getElementById("password").onblur = checkPassword;}// 2.校验用户名function checkUsername() {// 获取用户名var username = document.getElementById("username").value;// 定义正则表达式var reg_username = /^\w{6,12}$/;// 判断用户名是否符合正则规则var flag = reg_username.test(username);// 获取提示var s_username = document.getElementById("s_username");if(flag){// 提示绿色对勾s_username.innerHTML = "<img width='35' height='25' src='img/gou.png'/>";}else {// 提示红色用户名有误s_username.innerHTML = "用户名格式有误";}return flag;}// 3.校验密码function checkPassword() {// 获取密码var password = document.getElementById("password").value;// 定义正则表达式var reg_password = /^\w{6,12}$/;// 判断密码是否符合正则规则var flag = reg_password.test(password);// 获取提示var s_password = document.getElementById("s_password");if(flag){// 提示绿色对勾s_password.innerHTML = "<img width='35' height='25' src='img/gou.png'/>";}else {// 提示红色密码有误s_password.innerHTML = "用户名格式有误";}return flag;}```
JavaScript高级(BOM+DOM)学习相关推荐
- 《JavaScript高级程序设计》学习笔记(一)
文章目录 一.什么是JavaScript JavaScript的组成 二.HTML中的JavaScript 2.1 <script>元素 2.1.1 标签位置 2.1.2推迟执行脚本 2. ...
- javascript (BOM DOM)
BOM对象 window对象 所有浏览器都支持 window 对象.概念上讲.一个html文档对应一个window对象.功能上讲: 控制浏览器窗口的.使用上讲: window对象不需要创建对象,直接使 ...
- 3.JavaScript核心BOM操作学习(界面交互功能)——JavaScript获取自定义的方法,开始进行节点操作
今天事情比较多,学习的东西比较少 第三天继续 H5新增获取自定义的方法 <body><div getTime="20" data-index="2&qu ...
- 《JavaScript 高级程序设计》学习总结六(3)
引言:继承是面向对象语言中的一个最为人津津乐道的概念.许多面向对象都支持两种继承方式:接口继承与实现继承,接口继承只继承方法签名,而实现继承则继承实际的方法.如前所述,由于JavaScript 中函数 ...
- JavaScript之 Bom+Dom
1:BOM概念 BOM:Browser Object Model. window对象是BOM中所有对象的核心. 2:window对象 属性 self:self代表自己,相当于window. par ...
- 《JavaScript高级程序设计》学习笔记——错误处理与调试
Author:chemandy 第十四章 错误处理与调试 1.开启浏览器错误报告 1.1 Internet Explorer □Toos → Internet Option → Anvanced → ...
- 【前端开发—JavaScript】——BOM/DOM
Bom Browser Object Model 浏览器 对象 模型 浏览器对象模型: 浏览器提供的一系列可以操作浏览器API BOM中的顶级对象 window (全局中的window) + 使用BO ...
- JavaScript高级程序设计-----望远镜学习笔记(2)
第3章 语言基础 3.1语法 3.1.1 区分大小写 无论是变量.函数名还是操作符,都区分大小写.text和Text是两个不同的变量. 3.1.2 标识符 所谓标识符,就是变量.函数.属性或者函数参数 ...
- 《JavaScript 高级程序设计》学习总结五(3)
引言:前面两节我对 Object 与数组Array 及其方法进行了总结,篇幅很长,总结完后我感觉还是要多开几节来对第五章进行分节总结,不然排版的知识点看着的确是有些混乱. 总结的学习的确是很痛苦并 ...
- 《JavaScript高级程序设计》学习笔记(第二章)
在HTML中使用JavaScript 在前端开发中,HTML是整个页面的基石,用于控制页面的结构,如果没有HTML的话,JavaScript也将无用武之地,所以使用JavaScript的首要问题就是如 ...
最新文章
- Linux支持多种平台
- IBM押注沃森人工智能技术 未来6年或达170亿美元
- 网站最令人讨厌的几个用户体验
- 项目Alpha冲刺——代码规范、本次冲刺任务与计划
- C++ Primer 5th笔记(chap 18 大型程序工具) using指示
- 学python需要记得的单词_学习Python必背的初级单词有哪些?
- 科大星云诗社动态20210407
- 使用 std::shared_ptr 和 std::unique_ptr 测试 boost/pointer_cast.hpp
- 公司注册资金100万欠债1千万,股东还100万,剩下的900万怎么办?
- java第七章jdbc课后简答题_java学习路线流程
- 字符集ASCII、GBK、UNICODE、UTF在储存字符时的区别
- 动易Ajax登陆调用
- 彩色静电植绒印花工艺的五个方法
- BZOJ1283 序列(费用流)
- java qq空间权限控制_QQ空间访问权限设置方法
- 使用Simscape搭建车辆仿真模块
- android 4.4 root精灵,ROOT精灵: 支持安卓4.3/4.4机型一键ROOT
- DocumentFormat.OpenXml
- 10G XFP万兆光模块全类型介绍
- roaringbitmap java,BitMap与RoaringBitmap、JavaEWAH
热门文章
- Qt用QProcess调用exe的简单方法
- 【easyTrader源码分析1】源码结构梳理
- Samtec科普 | 连接器设计中的温度挑战
- AI智能修人像插件 Retouch4me 1.0 九合一
- 计算机系统基础_实验报告_机器指令实现实现十个数相加求和_LC-3
- 电信笔试C语言,-中国电信笔试-中国电信C网应知应会题库基础分册(V1.0).doc
- 我们往往都被直接结果吓退了
- 哪些软件可以用于统计数据
- 网上订票系统数据库c语言实现,基于c 的火车票订票管理系统的设计与实现.docx...
- Office - PPT 01