目录

DOM-Document Object Model 文档对象模型

第一部分:Dom获取元素

第二部分:DOM属性设置与获取

第三部分:事件(鼠标事件、键盘事件、表单事件)


DOM-Document Object Model 文档对象模型

DOM定义了表示和修改文档所需的对象、这些对象的行为和属性以及这些对象之间的关系。DOM对象即为宿主对象,由浏览器厂商定义,用来操作html和css功能的一类对象的集合。也有人称DOM是对HTML以及XML的标准编程接口。

第一部分:Dom获取HTML元素

方法一:

  • document代表整个文档
  • getElementById() //获得一个有着给定id属性值的元素,该元素不存在时,返回null
  • getElementsByTagName() //到元素们的标签名   得到的元素为数组
  • getElementsByClassName() //   根据类选择器返回所有匹配到的元素数组,如果没有匹配到,则返回空数组;   支持: Chrome 4.0+, FireFox 3.0+, Safari 3.2+, Opera 10.1+, IE 8+
  • getElementsByName(); //,IE不支持需注意,只有部分标签name可生效(表单,表单元素,img,iframe)
  • querySelector() // 根据CSS选择器返回第一个匹配到的元素,如果没有匹配到,则返回null;
  • querySelectorAll() //根据CSS选择器返回所有匹配到的元素数组,如果没有匹配到,则返回空数组; 在ie7和ie7以下的版本中没有,

具体例子理解

  <div id="box"><input type="text" name="idea"><img src="" alt=""  name="idea"><div class="main"><ul><li class="first">我是第一个li标签</li><li>这也是一个li标签</li><li>这也是一个li标签</li></ul><p class="first">我是第一个p标签</p><p>这也是一个p标签</p><a href="" class="first">我是第一个a标签</a></div></div>

(1)document.getElementById("id")方法:获得一个有着给定id属性值的元素,"id"为DOM元素上id属性的值,要注意大小写。

id值必须加引号放在括号里。在css中id是独一无二的

var a1=document.getElementById("box");//获取id名为"box"的元素
console.log(a1);
console.log(typeof a1);//这个方法返回值是对象object
var a2=document.getElementById("bigBox");//获取一个不存在的id,结果返回null
console.log(a2);//null

执行结果:

(2)document.getElementsByTagName("TagName"): 获得一个有着给定标签名的元素。"TagName"是元素的标签名,返回的是htmlcollection 集合 , 用法和数组一致。页面中不存在要获取的标签时,则返回空数组。

var b1=document.getElementsByTagName("div");//通过标签名选择元素,返回值是对象数组
console.log(b1);//返回对象数组
console.log(typeof b1);//object
var b2=document.getElementsByTagName("span");//获取一个页面中没有的标签
console.log(b2);//返回空数组 HTMLCollection []

执行结果:

(3)getElementsByClassName(”class“):   class为DOM元素上class属性的值,返回的是htmlcollection 集合 , 用法和数组一致。当不存在要获取的类名时,则返回  HTMLCollection [];

var c1=document.getElementsByClassName("first");//获取所有类名为first的元素
var c2=document.getElementsByClassName("first")[1];//获取类名为first的p元素
var c3=document.getElementsByClassName("last");//获取一个不存在的类名,会返回空数组
console.log(c1);//
console.log(typeof c1);
console.log(c2);//
console.log(typeof c2);
console.log(c3);//空数组 HTMLCollection []

执行结果:

(4)getElementsByName("name"); //IE不支持需注意。name为DOM元素上name属性的值 ,只有部分标签name可生效(表单,表单元素,img,iframe)。返回的是NodeList 类型, 用法和数组一致。获取一个不存在的name值时,会返回NodeList[]。

var d1=document.getElementsByName("idea");//获取name为"idea"的元素
var d2=document.getElementsByName("idea")[0];//获取第一个name为"idea"的元素
var d3=document.getElementsByName("haha");//获取name值为"haha"的元素
console.log(d1);
console.log(d2);
console.log(d3);

执行结果:

(5)querySelector():通过选择器获取一个元素,返回第一个匹配到的元素,如果没有匹配到,则返回null;

var f1=document.querySelector(".main>ul>li.first");//获取第一个li标签
var f2=document.querySelector(".main>ul>li");//获取所有的li标签,结果返回第一个匹配到的元素
console.log(f1);
console.log(f2);

执行结果:

(6)querySelectorAll(): 根据CSS选择器返回所有匹配到的元素数组,返回NodeList类型,用法和数组一致。如果没有匹配到,则返回空数组NodeList[];

var g1=document.querySelectorAll(".main>ul>li");//获取所有的li标签
var g2=document.querySelectorAll(".main>ul>li")[1];//选择获取到的第二个li标签
console.log(g1);
console.log(g2);

方法二:

利用节点关系获取元素:

利用节点关系访问HTML元素的属性和方法如下:

  • parentNode 返回父节点
  • previousSibiling  返回当前节点的前一个兄弟节点
  • nextSibiling 返回当前节点的后一个兄弟节点
  • firstChild 返回当前节点的第一个子节点
  • lastChild 返回当前节点的最后一个子节点
  • nodeType 属性返回以数字值返回指定节点的节点类型。返回(元素节点是1  属性节点是2 文本节点是3)
  • nodeName 属性指定节点的节点名称。

例子:

 /*--------------------------------css样式--------------------------------- */
<style>#n3{color:red;}
</style>
<!---------------------------- html结构------------------------------- -->
<ul id="myul"><li id="n1">1111</li><li id="n2">2222</li><li id="n3">unique</li><li id="n4">4444</li><li id="n5">5555</li>
</ul>
<input type="button" value="父节点" onclick="showContent(curr.parentNode)"/><!--找到id="n3"元素的父节点-ul-->
<input type="button" value="第一个子节点" onclick="showContent(curr.parentNode.firstChild.nextSibling)"/><!--谷歌火狐浏览器会把空格也看作一个元素, 这里加nextSibling-->
<input type="button" value="上一个节点" onclick="showContent(curr.previousSibling.previousSibling)"/>
<input type="button" value="下一个节点" onclick="showContent(curr.nextSibling.nextSibling)"/>
<input type="button" value="最后一个子节点"onclick="showContent(curr.parentNode.lastChild.previousSibling)"/>
<input type="button" value="得到所有li元素的个数"onclick="showCountLi()"/>//---------------------------------js--------------------------------------
<script>var curr=document.getElementById("n3");function showContent(target){alert(target.innerHTML);}function showCountLi(){alert(document.getElementsByTagName("li").length);//5个}
</script>

结果如下图:

这样就能很清晰的看到获得的节点元素了

第二部分:DOM对HTML元素访问

(1)DOM访问表单控件常用属性和方法

  • action 返回该表单提交地址
  • elements 返回表单内全部表单控件所组成的数组,通过数组可以访问表单内的任何表单控件
  • length 返回表单内表单域的个数
  • method 返回表单的method属性,主要有get和post两个值
  • target 确定提交表单的结果窗口,主要有 _self、_blank、_top等
  • reset()、submit() 重置表单和确定表单方法

在elements返回的数组中访问具体的表单控件语法

  • .elements[index]  返回该表单第index个表单控件
  • .elements[elementName]   返回表单内id或者name为elemenName的表单控件
  • .elementName  返回表单中id或者name为elemenName的表单控件,比.elements[elementName] 更直接

例子:

<body><!-- ----------------------------------html------------------------------------ --><form id="myForm" action="http://www.baidu.com" method="GET" target="_blank"><input name="usename" type="text" value="微雨陌兰"><input name="password" type="text" value="9876543" ><select name="city" id=""><option value="hangzhou">杭州</option><option value="beijing">北京</option></select></br><input type="button" value="获取表单第一个控件" onclick="alert(document.getElementById('myForm').elements[0].value)"/><!--获取表单第一个控件的值--><input type="button" value="获取表单第二个控件" onclick="alert(document.getElementById('myForm').elements['password'].value)"><input type="button" value="获取表单第三个控件"onclick="alert(document.getElementById('myForm').city.value)"><input type="button" value="操作控件" onclick="operatorForm()"></form><!-- -------------------------------------------js-------------------------------------- --><script>function operatorForm(){// var myform=document.getElementById("myForm");var myform=document.forms[0];// alert(myform.action);// alert(myform.method);// alert(myform.target);myform.submit();//提交表单// myform.reset();//重置表单}</script>
</body>

结果如下图:

(2)Dom访问列表框、下拉菜单的常用属性

  • form 返回下拉框、下拉菜单所在的表单对象
  • length  返回下拉框、下拉菜单的选项个数
  • options 返回下拉框、下拉菜单所有选项组成的数组
  • selectedIndex 返回下拉列表中选项的索引
  • type 返回下拉列表的类型、多选的话返回select-multiple,单选返回select-one

使用options[index] 返回具体选项所对应的常用属性

  • defaultSelected  返回该选项默认是否被选中
  • index  返回该选项在列框、下拉菜单中的索引
  • selected  返回该选项是否被选中
  • text 返回该选项呈现的文本
  • value  返回该选项的value属性值
  • 注意区分text和value,这里"杭州"是"text","hangzhou"是"value",其中value是要传给服务器端的数据
 <option value="hangzhou">杭州</option>

例子:

<!----------------------------------html------------------------------------><select name="city" id="city" size="5"><option value="hangzhou">杭州</option><option value="beijing" >北京</option><option value="nanjing" selected="selected"> 南京</option><option value="shenzhen">深圳</option><option value="xi'an"> 西安</option></select></br><input type="button" value="第一个城市" onclick="change(s_city.options[0])">/<input type="button" value="上一个城市" onclick="change(s_city.options[s_city.selectedIndex-1])" /><input type="button" value="下一个城市"onclick="change(s_city.options[s_city.selectedIndex+1])"/><input type="button" value="最后一个城市"           onclick="change(s_city.options[s_city.length-1])"/><!-- --------------------------------js----------------------------------------- --><script>var s_city=document.getElementById("city");var change=function(city){alert(city.text);}

结果如下图:

 (3)DOM访问表格子元素的常用属性和方法

  • caption 返回表格的标题对象
  • rows 返回表格里的所有表格行
  • tbodies
  • tfoot
  • thead

通过rows[index]返回表格指定的行所对应的属性

  • cells 返回该行内所有单元格组成的数组
  • rowIndex 返回该行在表格中的索引值
  • sectionRowIndex 返回该行内在其所在元素(tbody,thead等元素)的索引值

例子:

 <!-----------------------------------html---------------------------><table id= "myTable" border="1px" cellspacing="0"><caption>前端发展阶段</caption><tr><td ></td><td>初级</td><td>中级</td><td>高级</td><td>专家</td> </tr><tr><td>标准</td><td>被产品怼得说不出话</td><td>互怼不相上下</td><td>怼的产品没话说</td><td>产品被怼离职</td></tr><tr><td>用户A</td><td>可以做到</td><td>可以做到</td><td>怂了</td><td>没想过</td></tr><tr><td>用户B</td><td>小意思</td><td>小意思</td><td>小意思</td><td>完全不在话下</td></tr></table><input type="button" value="表格标题" onclick='alert(document.getElementById("myTable").caption.innerHTML);'/><input type="button" value="第二行、第二格"onclick='alert(document.getElementById("myTable").rows[0].cells[1].innerHTML)'/><input type="button" value="第三行、第三格"onclick='alert(document.getElementById("myTable").rows[1].cells[3].innerHTML)'/><input type="button" value="第四行、第四格"onclick='alert(document.getElementById("myTable").rows[2].cells[4].innerHTML)'/><br/>设置指定单元格的值:第<input type="text" id="row" size="2"/>行,第<input type="text" id="cell" size="2"/>列的值为<input type="text" id="change" size="10"><input type="button" id="btn_set" value="修改" onclick="change()"/><!---------------------------------js------------------------------->
<script>function change(){var row=document.getElementById("row").value;var cell=document.getElementById("cell").value;var t=document.getElementById("myTable");t.rows[row-1].cells[cell-1].innerHTML=document.getElementById("change").value;//也可以通过item来访问
// t.rows[row-1].cells[cell-1].innerHTML=document.getElementById("change").value;     }</script>

结果如下:

第三部分:DOM对元素增删改

(1)DOM 创建节点的方法

  • document.createElement(Tag)    Tag必须是合法的HTML元素
  • document.createTextNode("文本")    创建文本节点
  • document.createCommet("注释文本")创建注释节点

(2)DOM复制节点

  • 节点.cloneNode(boolean deep),当参数deep为true时,表示复制当前节点以及当前节点的全部后代节点。(也成为“深复制”);当参数deep为false时,只复制当前节点。

(3)添加删除节点

  • appendChild(newNode)将newNode添加成当前节点的最后一个子节点(与push()功能相似),如果是把页面已有的元素添加到另一个位置时是剪贴功能。

  • insertBefore(newNode,refNode) 在refNode节点之前插入newNode节点,返回新的子节点

  • replaceChild(newNode,oldNode) 将oldNode节点替换成newNode节点

  • removeChild(oldNode) 将oldNode子节点删除,如果删除成功,则返回被删除的节点,如果失败,则返回null,方使用removeChild()方法删除节点时,该节点所包含的所有子节点将同时被删除

例子:

<!---------------------------html------------------------------------><ul id="city"><li>北京</li><li>上海</li></ul><input type="button" value="创建复制替换节点" onclick="create()"><input type="button" value="复制节点" onclick="copy()"><input type="button" value="删除节点" onclick="del()">
<!---------------------------js----------------------------------------><script>//节点插入function create(){var city=document.getElementById("city");var liEle=document.createElement("li");liEle.innerHTML="乌鲁木齐";// city.appendChild(liEle);//插入新节点// city.insertBefore(liEle,city.firstChild.nextSibling);//在北京之前插入新节点// city.replaceChild(liEle,city.firstChild.nextSibling) //节点替换,将li第一个节点替换// city.removeChild(city.firstChild.nextSibling);//节点删除,删除第一个节点}//节点复制function copy(){var city=document.getElementById("city");var ele=city.firstChild.nextSibling.cloneNode(true);//复制北京节点,注意深浅复制结果不同city.appendChild(ele);}//节点删除function del(){var city=document.getElementById("city");var ele=city.firstChild.nextSibling;//删除北京节点city.removeChild(ele);}</script>

结果如下:

(4)DOM为列表框下拉菜单添加选项方法

第一步:创建选项除了createElement方法之外,还可以使用专门的构造器来构造一个选项,其中有四个参数

  new Option(text,value,defaultSelected,selected);

参数可以不全部指定,假如指定一个参数,就指明text;假如指定两个参数,第一个参数时text,第二个是value。

第二步:添加创建好的选项到列表框或下拉菜单方法:直接为<select>的指定选项赋值

列表框或下拉对象.options[i]=创建好的option对象

(5)删除列表框、下拉菜单选项方法

  • 直接使用 列表框或下拉对象.remove(index)方法删除指定选项
  • 列表框或下拉对象.remove(index)或者options[index]=null

例子:

<!--------------------------------html---------------------------------->
<body id="body"><input type="button" value="创建一个水果列表框" onclick="create()"><input type="button" value="分条删除列表框内容" onclick="delOneByOne()"><input type="button" value="一次性清空列表框内容" onclick="delAll()">
</body>
<!---------------------------------js--------------------------------><script>//创建列表框function create(){var ele=document.createElement("select");for(var i=0;i<10;i++){var op= new Option("水果"+i,i);ele.options[i]=op;}ele.size=5;ele.id="fruits";document.getElementById("body").appendChild(ele);}//选项分条删除function delOneByOne(){var fruits=document.getElementById("fruits");if(fruits.options.length>0){// fruits.remove(fruits.options.length-1);//分条删除列表选项fruits.options[fruits.options.length-1]=null;} }//清空选项function delAll(){var fruits=document.getElementById("fruits");if(fruits.options.length>0){fruits.options.length=0;//将选项数设为0} }</script>

结果如下:

(6)DOM操作表格元素

      动态添加/删除表格内容

  • insertRow(index) 在指定索引位置插入一行
  • createCaption 为该表格创建标题
  • createTFoot 为该表格创建<tfoot>元素,假如存在就返回已有的
  • createTHead,同上
  • deleteRow(index) 删除表格中指定索引位置的行
  • deleteCaption/TFoot/Thead

给表格行创建、删除单元格的方法

  • insertCell(index) 在index处创建一个单元格,返回新创建的单元格
  • deleteCell(index) 删除某行在index处的单元格

属性设置与获取

(1)获取属性:ele.getAttribute( “attribute” ) 功能是获取ele元素的attribute属性。其中ele是要操作的dom对象,attribute是要获取的html属性(如:id 、type)

(2)设置属性:ele.setAttribute(”attribute”,value) 功能:在ele元素上设置属性。其中ele是要操作的dom对象,attribute为要设置的属性名称,value为设置的attribute属性的值。
(3)删除属性:ele.removeAttribute(”attribute" )功能:删除ele,上的attribute属性,其中ele是要操作的dom对象,attribute是要删除的属性名称
(4)添加样式: ele.style.styleName=styleValue;功能是设置ele元素的CSS样式

var box=document.getElementById("box");
box.style.width="100px";
box.style.backgroundColor="#f00"//像background-color这样带有短横线的属性要是用驼峰命名的方式。
//或者写成下面的
box.style="width:100px; background-color:#f00;";//

这里可以用"[]"代替"."操作

看个例子:

#box{width: 100px; height: 100px;background-color: blue;}//css样式
<div id="box"> 一段文字</div>//html
<script>var div1 = document.getElementById("box");   div1.onclick=function(){//div1.style="color:green; background-color:red; font-size:40px; " // div1["style"]="color:green; background-color:red; font-size:40px;"div1.style.cssText=" color:green;background-color:red; font-size:40px;"  // div1["style"]["cssText"]=" color:green;background-color:red; font-size:40px;"}
</script>

大家可以试一下,注释里的其他三条也都能实现,鼠标点击div改变div样式的效果。

(5)获取和设置元素标签的内容(innerHTML与innerText)

几乎所有DOM元素都有innerText,innertHTML属性(注意大小写),分别是元素标签内的文本表示形式和HTML源代码,这两个属性是可读可写的。

   ①innerHTML

innerHTML可获取或设置指定元素标签内的 html内容,从该元素标签的起始位置到终止位置的全部内容(包含html标签)。

获取元素的内容:element.innerHTML;

给元素设置内容:element.innerHTML =htmlString;
代码示例为:

 <p id="content">山气日夕佳</p>var content=document.getElementById("content").innerHTML;//获取p元素的内容 "山气日夕佳"var a=document.getElementById("content").innerHTML="<li>这是新增的内容</li>";//新增内容

结果:

②innerText

innerText可获取或设置指定元素标签内的文本值,从该元素标签的起始位置到终止位置的全部文本内容(不包含html标签)。
获取元素的内容:element.innerText;给元素设置内容:element.innerText = string;
代码示例为:

  var content=document.getElementById("content").innerText;console.log(content);//山气日夕佳var a=document.getElementById("content").innerText="<li>这是新增的内容</li>";console.log(a)//<li>这是新增的内容</li>

结果:

③innerHTML和innerText区别:

使用innerHtml会转义成HTML;加粗显示出来;使用innerText不会转译,标签也会显示。

innerHTML返回的是标签内的 html内容,包含html标签。

innerText返回的是标签内的文本值,不包含html标签。

特别说明:

  innerHTML是符合W3C标准的属性,而innerText只适用于I部分浏览器,例如火狐浏览器严格遵守规范不支持innerText,因此,尽可能地去使用innerHTML,而少用innerText。

这里再记录一下,解决火狐浏览器对innerText不兼容的解决方案,IE、Safari、Opera和Chrome支持innerText属性。Firefox虽然不支持innerText,但支持作用类似的textContent属性。textContent是DOM3级规定的一个属性,而且也得到了safari、opera和Chrome的支持。

var div = document.getElementById("content");
function getInnerText(element) {return (typeof element.textContent == "string") ? element.textContent : element.innerText;
}

第四部分:事件(鼠标事件、键盘事件、表单事件)

注意:在事件触发的函数中, this是对该DOM对象的引用。

鼠标事件

  • onload :页面加载时触发

  • onclick :鼠标点击时触发

  • onmouseover :鼠标滑过时触发

  • onmouseout :鼠标离开时触发

  • onfocus :获得焦点时触发 ,事件用于:
    input标签type为text、password; textarea;

  • onblur :失去焦点时触发

  • onchange:域的内容改变时发生,一般作用于select或checkbox或radio

  • onsubmit:表单中的确认按钮被点击时发生:不是加在按钮上,而是在表单上(from)。

  • onmousedown : 鼠标按钮在元素上按下时触发.

  • onmousemove :在鼠标指针移动时发生

  • onmouseup :在元素上松开鼠标按钮时触发

练习:一个鼠标滑入滑出改变盒子状态的案例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.first{width: 100px;height: 80px;margin-bottom: 50px;background-color:yellow;}.second{width: 100px;height: 80px;background-color:purple;}</style>
</head>
<body><div class="first"></div><div class="second"></div><script>var first=document.getElementsByTagName("div")[0];var second=document.getElementsByTagName("div")[1];first.onmouseover=function(){second.style.backgroundColor="green";}first.onmouseout=function(){second.style.backgroundColor="purple";}second.onmouseover=function(){first.style.backgroundColor="green";}second.onmouseout=function(){first.style.backgroundColor="yellow";}</script>
</body>
</html>

键盘事件

  • onkeydown(键盘按下)

  • onkeyup(键盘抬起)

  • onkeypress(按键事件)

JS基础知识篇-DOM操作总结相关推荐

  1. js基础4 使用dom操作/getStyle/scrollHeight/协议滚动禁用例子/div随鼠标移动/冒泡/事件的委派/事件的绑定

    使用dom操作 <!DOCTYPE html> <html lang="en"> <head><meta charset="UT ...

  2. vue.js基础知识篇(5):过渡、Method和Vue实例方法

    第8章:过渡 1.CSS过渡 2.JavaScript过渡 3.渐进过渡 第9章:method Vue.js的事件一般通过v-on指令配置在HTML中,虽然也可以在js的代码中使用原生的addEven ...

  3. vue.js基础知识篇(4):过滤器、class与style的绑定2

    代码下载:网盘 欢迎私信 第一章:过滤器 过滤器是对数据进行处理并返回结果的函数. 1.语法 语法是使用管道符"|"进行连接.过滤器可以接收参数,跟在过滤器后面,带引号的参数被当做 ...

  4. vue.js基础知识篇(1):简介、数据绑定

    目录第一章:vue.js是什么? 第二章:数据绑定第三章:指令第四章:计算属性第五章:表单控件绑定代码链接: http://pan.baidu.com/s/1qXCfzRI 密码: 5j79 第一章: ...

  5. JS基础知识学习(一)

    JS基础知识 前端开发常用的浏览器 谷歌浏览器(chrome):Webkit内核(v8引擎) 火狐浏览器(firefox):Gecko内核 欧朋浏览器(opera):Presto内核 IE浏览器:Tr ...

  6. 了解js基础知识中的作用域和闭包以及闭包的一些应用场景,浅析函数柯里化

    js基础知识中的作用域和闭包 一.作用域 1.作用域.自由变量简介 (1)作用域定义 (2)作用域实例演示 (3)自由变量定义 (4)自由变量实例演示 2.作用域链简介 (1)作用域链定义 (2)作用 ...

  7. 前端学习笔记(js基础知识)

    前端学习笔记(js基础知识) JavaScript 输出 JavaScript 数据类型 常见的HTML事件 DOM 冒泡与捕获 流程控制语句 for..in 计时器 let,var,const的区别 ...

  8. SP 短信开发-基础知识篇

    SP 短信开发-基础知识篇 很土的话题,但是最近帮朋友做这个东西,所以写点东西出来给初学者参考. 一.准备资料 SP开发资料网站上有很多,但是主要是以下几个文档: 1.MISC1.6 SP订购通知接口 ...

  9. (七)JS基础知识四(搞定异步)【三座大山之三,必考!!!】

    JS基础知识四(异步) 提问 单线程 应用场景 callback hell和promise 提问 同步和异步的区别是什么 手写用Promise加载一张图片 前端使用的异步的场景有哪些 单线程 JS是单 ...

最新文章

  1. 巧用Excel 2010数据透视表制作销售报表
  2. Ambari安装之部署 (Metrics Collector和 Metrics Monitor) Install Pending ...问题
  3. Mysql大表的优化
  4. 探索ElasticSearch(一)
  5. cdn加速怎么样刷新文件
  6. Device Tree(一):背景介绍
  7. linux 采集cpu 内存,Linux环境获取(cpu、内存、网卡流量等)系统性能数据
  8. PyMC3实现贝叶斯神经网络
  9. Pascal VOC 2012数据集下载(速度很快)
  10. 计算机学院实验室安全管理办法,计算机学院实验室安全管理办法.pdf
  11. 解决W5500,DHCP获取IP地址失败的问题,移植官方例程需要特别注意!!!
  12. 谁说待国企就是养老?前阿里P8总结500页Java成长笔记全网首发!爱了爱了!
  13. MATLAB小技巧(9) 图片合成视频与视频分帧
  14. mysql超链接_PHP MYSQL超链接和表单
  15. 3.1 学习计算机,从编程入手 ——《逆袭大学》连载
  16. Zookeeper——Watcher原理详解
  17. hanlp分词学习笔记
  18. 中国搜索领域起战火:百度与360交锋
  19. 杨月江计算机导论答案,计算机导论课程实验教学大纲-计算机学院-华北科技学院.doc...
  20. 彻底搞懂SpringAOP中的@within和@target

热门文章

  1. origin学习笔记1——将数据制成图表
  2. mysql case if 条件查询及性能分析
  3. SharePoint 2013 BI--Power Query for SharePoint
  4. Java8 Stream用法总结
  5. 获取Revit安装版本信息及安装路径
  6. 【计算机视觉40例】案例03:数字水印
  7. 随机森林算法(Random Forest)Python实现
  8. Linux 查看系统版本
  9. CSS3 实现六边形Div图片展示效果
  10. 反序列化漏洞攻击原理(Dubbo反序列化漏洞剖析)