DOM(文檔對象模型)

文檔對象模型DOM(Document Object Model)定義訪問和處理HTML文檔的標準方法。

DOM?將HTML文檔呈現為帶有元素、屬性和文本的樹結構(節點樹)。

先來看看下面代碼:

將HTML代碼分解為DOM節點層次圖:

HTML文檔可以說由節點構成的集合,三種常見的DOM節點:

1. 元素節點:上圖中<html>、<body>、<p>等都是元素節點,即標簽。

2. 文本節點:向用戶展示的內容,如<li>...</li>中的JavaScript、DOM、CSS等文本。

3. 屬性節點:元素屬性,如<a>標簽的鏈接屬性href="http://www.imooc.com"。

看下面代碼:

<a href="http://www.imooc.com">JavaScript DOM</a>


通過ID獲取元素

學過HTML/CSS樣式,都知道,網頁由標簽將信息組織起來,而標簽的id屬性值是唯一的,就像是每人有一個身份證號一樣,只要通過身份證號就可以找到相對應的人。那么在網頁中,我們通過id先找到標簽,然后進行操作。

語法:

 document.getElementById(“id”) 

看看下面代碼:

結果:null或[object HTMLParagraphElement]

注:獲取的元素是一個對象,如想對元素進行操作,我們要通過它的屬性或方法。

通過名稱獲取元素

getElementsByName()方法,返回帶有指定名稱的節點對象的集合。

語法:

document.getElementsByName(name)

與getElementById() 方法不同的是,通過元素的 name 屬性查詢元素,而不是通過?id 屬性。

注意:

1.?因為文檔中的 name 屬性可能不唯一,所有 getElementsByName() 方法返回的是元素的數組,而不是一個元素。

2.?和數組類似也有length屬性,可以和訪問數組一樣的方法來訪問,從0開始。

看看下面的代碼:

運行結果:

通過指定標簽獲取元素

getElementsByTagName()方法,返回帶有指定標簽名的節點對象的集合。返回元素的順序是它們在文檔中的順序。

語法:

getElementsByTagName(Tagname)

說明:

1. Tagname是標簽的名稱,如p、a、img等標簽名。

2. 和數組類似也有length屬性,可以和訪問數組一樣的方法來訪問,所以從0開始。

看看下面代碼,通過getElementsByTagName()獲取節點。

getElementByID,getElementsByName,getElementsByTagName區別

以人來舉例說明,人有能標識身份的身份證,有姓名,有類別(大人、小孩、老人)等。

1. ID 是一個人的身份證號碼,是唯一的。所以通過getElementById獲取的是指定的一個人。

2. Name 是他的名字,可以重復。所以通過getElementsByName獲取名字相同的人集合。

3.?TagName可看似某類,getElementsByTagName獲取相同類的人集合。如獲取小孩這類人,getElementsByTagName("小孩")。

把上面的例子轉換到HTML中,如下:

<input type="checkbox" name="hobby" id="hobby1">  音樂

input標簽就像人的類別。

name屬性就像人的姓名。

id屬性就像人的身份證。

方法總結如下:

注意:方法區分大小寫

通過下面的例子(6個name="hobby"的復選項,兩個按鈕)來區分三種方法的不同:

  <input type="checkbox" name="hobby" id="hobby1">  音樂<input type="checkbox" name="hobby" id="hobby2">  登山<input type="checkbox" name="hobby" id="hobby3">  游泳<input type="checkbox" name="hobby" id="hobby4">  閱讀<input type="checkbox" name="hobby" id="hobby5">  打球<input type="checkbox" name="hobby" id="hobby6">  跑步 <input type="button" value = "全選" id="button1"><input type="button" value = "全不選" id="button1">

1. document.getElementsByTagName("input"),結果為獲取所有標簽為input的元素,共8個。

2.?document.getElementsByName("hobby"),結果為獲取屬性name="hobby"的元素,共6個。

3.?document.getElementById("hobby6"),結果為獲取屬性id="hobby6"的元素,只有一個,"跑步"這個復選項。

通過指定標簽獲取元素

getAttribute()方法:通過元素節點的屬性名稱獲取屬性的值。

語法:

elementNode.getAttribute(name)

說明:

1. elementNode:使用getElementById()、getElementsByTagName()等方法,獲取到的元素節點。

2. name:要想查詢的元素節點的屬性名字

看看下面的代碼,獲取h1標簽的屬性值:

運行結果:

h1標簽的ID :alink
h1標簽的title :getAttribute()獲取標簽的屬值

用的是數組

setAttribute() 方法增加一個指定名稱和值的新屬性,或者把一個現有的屬性設定為指定的值。

語法:

elementNode.setAttribute(name,value)

說明:

1.name:?要設置的屬性名。

2.value:?要設置的屬性值。

注意:

1.把指定的屬性設置為指定的值。如果不存在具有指定名稱的屬性,該方法將創建一個新屬性。

2.類似于getAttribute()方法,setAttribute()方法只能通過元素節點對象調用的函數。

innerHTML 屬性

innerHTML 屬性用于獲取或替換 HTML 元素的內容。

語法:

Object.innerHTML

注意:

1.Object是獲取的元素對象,如通過document.getElementById("ID")獲取的元素

2.注意書寫,innerHTML區分大小寫。

我們通過id="con"獲取<p> 元素,并將元素的內容輸出和改變元素內容,代碼如下:

結果:

節點屬性

在文檔對象模型 (DOM) 中,每個節點都是一個對象。DOM 節點有三個重要的屬性 :

1. nodeName : 節點的名稱

2. nodeValue :節點的值

3. nodeType :節點的類型

一、nodeName 屬性:?節點的名稱,是只讀的

1.?元素節點的 nodeName 與標簽名相同
2.?屬性節點的 nodeName 是屬性的名稱
3.?文本節點的 nodeName 永遠是 #text
4.?文檔節點的 nodeName 永遠是 #document

二、nodeValue 屬性:節點的值

1. 元素節點的 nodeValue 是?undefined 或 null
2. 文本節點的 nodeValue 是文本自身
3. 屬性節點的 nodeValue 是屬性的值

三、nodeType 屬性:?節點的類型,是只讀的。以下常用的幾種結點類型:

元素類型?? ?節點類型
? 元素 ? ? ? ? ?1
? 屬性 ? ? ? ? ?2
? 文本 ? ? ? ? ?3
? 注釋 ? ? ? ? ?8
? 文檔 ? ? ? ? ?9

訪問子結點childNodes

訪問選定元素節點下的所有子節點的列表,返回的值可以看作是一個數組,具有length屬性。

語法:

elementNode.childNodes

注意:

如果選定的節點沒有子節點,則該屬性返回不包含節點的 NodeList。

我們來看看下面的代碼:

運行結果:

IE:

  UL子節點個數:3節點類型:1

其它瀏覽器:

   UL子節點個數:7節點類型:3

注意:

1. IE全系列、firefox、chrome、opera、safari兼容問題

2.?節點之間的空白符,在firefox、chrome、opera、safari瀏覽器是文本節點,所以IE是3,其它瀏覽器是7,如下圖所示:

如果把代碼改成這樣:

<ul><li>javascript</li><li>jQuery</li><li>PHP</li></ul>

運行結果:(IE和其它瀏覽器結果是一樣的)

  UL子節點個數:3節點類型:1

訪問子結點的第一和最后項

一、firstChild?屬性返回‘childNodes’數組的第一個子節點。如果選定的節點沒有子節點,則該屬性返回 NULL。

語法:

node.firstChild

說明:與elementNode.childNodes[0]是同樣的效果。?

二、?lastChild?屬性返回‘childNodes’數組的最后一個子節點。如果選定的節點沒有子節點,則該屬性返回 NULL。

語法:

node.lastChild

說明:與elementNode.childNodes[elementNode.childNodes.length-1]是同樣的效果。?

注意:?Internet Explorer 會忽略節點之間生成的空白文本節點,而其它瀏覽器不會。我們可以通過檢測節點類型,過濾子節點。

 var x=document.getElementById("**");
?document.write("第一個節點:"+x.firstChild.nodeName);
?document.write("第二個節點:"+x.lastChild.nodeName);

訪問父節點parentNode

獲取指定節點的父節點

語法:

elementNode.parentNode

注意:父節點只能有一個。

看看下面的例子,獲取 P 節點的父節點,代碼如下:

<div id="text"><p id="con"> parentNode 獲取指點節點的父節點</p>
</div> 
<script type="text/javascript">var mynode= document.getElementById("con");document.write(mynode.parentNode.nodeName);
</script>

運行結果:

parentNode 獲取指點節點的父節點
DIV

訪問祖節點:

elementNode.parentNode.parentNode

看看下面的代碼:

<div id="text"> ?<p>parentNode ? ? ?<span id="con"> 獲取指點節點的父節點</span></p>
</div>?
<script type="text/javascript">var mynode= document.getElementById("con");document.write(mynode.parentNode.parentNode.nodeName);
</script>

運行結果:

parentNode獲取指點節點的父節點
DIV

注意: 瀏覽器兼容問題,chrome、firefox等瀏覽器標簽之間的空白也算是一個文本節點。

訪問兄弟節點

1.?nextSibling 屬性可返回某個節點之后緊跟的節點(處于同一樹層級中)。

語法:

nodeObject.nextSibling

說明:如果無此節點,則該屬性返回 null。

2. previousSibling 屬性可返回某個節點之前緊跟的節點(處于同一樹層級中)。

語法:

nodeObject.previousSibling  

說明:如果無此節點,則該屬性返回 null。

注意: 兩個屬性獲取的是節點。Internet Explorer 會忽略節點間生成的空白文本節點(例如,換行符號),而其它瀏覽器不會忽略

解決問題方法:

判斷節點nodeType是否為1, 如是為元素節點,跳過。

運行結果:

LI = javascript
nextsibling: LI = jquery

插入節點appendChild()

在指定節點的最后一個子節點列表之后添加一個新的子節點。

語法:

appendChild(newnode)

參數:

newnode:指定追加的節點。

div標簽內創建一個新的 P 標簽,代碼如下:

運行結果:

HTML
JavaScript
This is a new p

? ?

?var otest = document.getElementById("test"); ?
? var newnode = document.createElement("li");
? var newtext= document.createTextNode("PHP");?
? newnode.appendChild(newtext);?
? otest.appendChild(newnode);

??

插入節點insertBefore()

insertBefore() 方法可在已有的子節點前插入一個新的子節點。

語法:

insertBefore(newnode,node);

參數:

newnode: 要插入的新節點。

node: 指定此節點前插入節點。

我們在來看看下面代碼,在指定節點前插入節點。

運行結果:

This is a new p
JavaScript
HTML

注意:?otest.insertBefore(newnode,node); 也可以改為:??otest.insertBefore(newnode,otest.childNodes[0]);?

刪除節點removeChild()

removeChild() 方法從子節點列表中刪除某個節點。如刪除成功,此方法可返回被刪除的節點,如失敗,則返回 NULL。

語法:

nodeObject.removeChild(node)

參數:

node :必需,指定需要刪除的節點。

我們來看看下面代碼,刪除子點。

運行結果:

HTML
刪除節點的內容: javascript

注意:?把刪除的子節點賦值給 x,這個子節點不在DOM樹中,但是還存在內存中,可通過 x 操作。

如果要完全刪除對象,給 x 賦 null?值,代碼如下:

替換元素節點replaceChild()

replaceChild 實現子節點(對象)的替換。返回被替換對象的引用。?

語法:

node.replaceChild (newnode,oldnew ) 

參數:

newnode : 必需,用于替換 oldnew 的對象。?
oldnew : 必需,被 newnode 替換的對象。

我們來看看下面的代碼:

?

效果: 將文檔中的 Java 改為 JavaScript。

注意:?

1.?當 oldnode 被替換時,所有與之相關的屬性內容都將被移除。?

2. newnode 必須先被建立。?

創建元素節點createElement

createElement()方法可創建元素節點。此方法可返回一個 Element 對象。

語法:

document.createElement(tagName)

參數:

tagName:字符串值,這個字符串用來指明創建元素的類型。

注意:要與appendChild() 或 insertBefore()方法聯合使用,將元素顯示在頁面中。

我們來創建一個按鈕,代碼如下:

<script type="text/javascript">
   var body = document.body; 
   var input = document.createElement("input");  input.type = "button";  input.value = "創建一個按鈕";  body.appendChild(input);  </script>  

效果:在HTML文檔中,創建一個按鈕。

我們也可以使用setAttribute來設置屬性,代碼如下:

<script type="text/javascript">  var body= document.body;             var btn = document.createElement("input");  btn.setAttribute("type", "text");  btn.setAttribute("name", "q");  btn.setAttribute("value", "使用setAttribute");  btn.setAttribute("onclick", "javascript:alert('This is a text!');");       body.appendChild(btn);  
</script>  

效果:在HTML文檔中,創建一個文本框,使用setAttribute設置屬性值。 當點擊這個文本框時,會彈出對話框“This is a text!”。

創建文本節點createTextNode

createTextNode() 方法創建新的文本節點,返回新創建的 Text 節點。

語法:

document.createTextNode(data)

參數:

data :?字符串值,可規定此節點的文本。

我們來創建一個<div>元素并向其中添加一條消息,代碼如下:

運行結果:

改變 HTML 樣式

HTML DOM 允許 JavaScript 改變 HTML 元素的樣式。如何改變 HTML 元素的樣式呢?

語法:

Object.style.property=new style;

注意:Object是獲取的元素對象,如通過document.getElementById("id")獲取的元素。

基本屬性表(property):

注意:該表只是一小部分CSS樣式屬性,其它樣式也可以通過該方法設置和修改。

看看下面的代碼:

改變 <p> 元素的樣式,將顏色改為紅色,字號改為20,背景顏色改為藍:

<p id="pcon">Hello World!</p>
<script>var mychar = document.getElementById("pcon");mychar.style.color="red";mychar.style.fontSize="20";mychar.style.backgroundColor ="blue";
</script>

結果:

顯示和隱藏(display屬性)

網頁中經常會看到顯示和隱藏的效果,可通過display屬性來設置。

語法:

Object.style.display = value

注意:Object是獲取的元素對象,如通過document.getElementById("id")獲取的元素。

value取值:

看看下面代碼:

控制類名(className 屬性)

className 屬性設置或返回元素的class 屬性。

語法:

object.className = classname

作用:

1.獲取元素的class 屬性

2. 為網頁內的某個元素指定一個css樣式來更改該元素的外觀

看看下面代碼,獲得 <p> 元素的 class 屬性和改變className:

結果:

瀏覽器窗口可視區域大小

獲得瀏覽器窗口的尺寸(瀏覽器的視口,不包括工具欄和滾動條)的方法:

一、對于IE9+、Chrome、Firefox、Opera 以及 Safari:

?? window.innerHeight - 瀏覽器窗口的內部高度

?? window.innerWidth - 瀏覽器窗口的內部寬度

二、對于 Internet Explorer 8、7、6、5:

?? document.documentElement.clientHeight表示HTML文檔所在窗口的當前高度。

?? document.documentElement.clientWidth表示HTML文檔所在窗口的當前寬度。

或者

Document對象的body屬性對應HTML文檔的<body>標簽

?? document.body.clientHeight

?? document.body.clientWidth

在不同瀏覽器都實用的 JavaScript 方案:

var w= document.documentElement.clientWidth|| document.body.clientWidth;
var h= document.documentElement.clientHeight|| document.body.clientHeight;

網頁尺寸scrollHeight

scrollHeight和scrollWidth,獲取網頁內容高度和寬度(不包括滾動條)。

一、針對IE、Opera:

scrollHeight 是網頁內容實際高度,可以小于 clientHeight。

二、針對NS、FF:

scrollHeight 是網頁內容高度,不過最小值是 clientHeight。也就是說網頁內容實際高度小于 clientHeight 時,scrollHeight 返回 clientHeight 。

三、瀏覽器兼容性

var w=document.documentElement.scrollWidth|| document.body.scrollWidth;
var h=document.documentElement.scrollHeight|| document.body.scrollHeight;

注意:區分大小寫

scrollHeight和scrollWidth還可獲取Dom元素中內容實際占用的高度和寬度。

網頁尺寸offsetHeight

offsetHeight和offsetWidth,獲取網頁內容高度和寬度(包括滾動條等邊線,會隨窗口的顯示大小改變)。

一、值

offsetHeight = clientHeight + 滾動條 + 邊框。

二、瀏覽器兼容性

var w= document.documentElement.offsetWidth|| document.body.offsetWidth;
var h= document.documentElement.offsetHeight|| document.body.offsetHeight;

網頁卷去的距離與偏移量

我們先來看看下面的圖:

scrollLeft:設置或獲取位于給定對象左邊界與窗口中目前可見內容的最左端之間的距離?,即左邊灰色的內容。

scrollTop:設置或獲取位于對象最頂端與窗口中可見內容的最頂端之間的距離?,即上邊灰色的內容。

offsetLeft:獲取指定對象相對于版面或由?offsetParent?屬性指定的父坐標的計算左側位置?。

offsetTop:獲取指定對象相對于版面或由?offsetParent?屬性指定的父坐標的計算頂端位置 。

注意:

1. 區分大小寫

2.?offsetParent:布局中設置postion屬性(Relative、Absolute、fixed)的父容器,從最近的父節點開始,一層層向上找,直到HTML的body。

編程實戰:

一、制作一個表格,顯示班級的學生信息。

要求:

1. 鼠標移到不同行上時背景色改為色值為 #f2f2f2,移開鼠標時則恢復為原背景色 #fff

2. 點擊添加按鈕,能動態在最后添加一行

3. 點擊刪除按鈕,則刪除當前行

Tips

第一步: 首先,我們創建刪除函數,并在刪除按鈕上添加點擊事件;

提示: 使用removeChild()。

第二步: 編寫一個函數,供添加按鈕調用,動態在表格的最后一行添加子節點;

提示: 使用createElement()、innerHTML、appendChild()。

第三步: 更改鼠標移動改變背景則可以通過給每行綁定鼠標移上事件和鼠標移除事件來改變所在行背景色。

提示:
1. 獲取表格的行,getElementsByTagName 。
2. 使用for進行循環,為每行添加事件及背景顏色設置。

<!DOCTYPE html>
<html><head><title> new document </title>  <meta http-equiv="Content-Type" content="text/html; charset=gbk"/>   <script type="text/javascript"> window.onload = function(){var tr=document.getElementsByTagName("tr");for(var i= 0;i<tr.length;i++){bgcChange(tr[i]);}// 鼠標移動改變背景,可以通過給每行綁定鼠標移上事件和鼠標移除事件來改變所在行背景色。}         function bgcChange(obj){obj.οnmοuseοver=function(){obj.style.backgroundColor="#f2f2f2";}obj.οnmοuseοut=function(){obj.style.backgroundColor="#fff";}}// 編寫一個函數,供添加按鈕調用,動態在表格的最后一行添加子節點;var num=2;function add(){num++;var tr=document.createElement("tr");var xh=document.createElement("td");var xm=document.createElement("td");xh.innerHTML="xh00"+num;xm.innerHTML="第"+num+"學生";var del=document.createElement("td");del.innerHTML="<a href='javascript:;' οnclick='del(this)' >刪除</a>";var tab=document.getElementById("table");tab.appendChild(tr);tr.appendChild(xh);tr.appendChild(xm);tr.appendChild(del);var tr = document.getElementsByTagName("tr");for(var i= 0;i<tr.length;i++){bgcChange(tr[i]);}}// 創建刪除函數function del(obj){var tr=obj.parentNode.parentNode;tr.parentNode.removeChild(tr);}</script> </head> <body> <table border="1" width="50%" id="table"><tr><th>學號</th><th>姓名</th><th>操作</th></tr>  <tr><td>xh001</td><td>王小明</td><td><a href="javascript:;" οnclick="del(this);">刪除</a></td>   <!--在刪除按鈕上添加點擊事件  --></tr><tr><td>xh002</td><td>劉小芳</td><td><a href="javascript:;" οnclick="del(this);">刪除</a></td>   <!--在刪除按鈕上添加點擊事件  --></tr>  </table><input type="button" value="添加一行" οnclick="add()" />   <!--在添加按鈕上添加點擊事件  --></body>
</html>


二、請編寫"改變顏色"、"改變寬高"、"隱藏內容"、"顯示內容"、"取消設置"的函數,點擊相應按鈕執行相應操作,點擊"取消設置"按鈕后,提示是否取消設置,如是執行操作,否則不做操作。

<pre name="code" class="html"><!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="txttent-Type" txttent="text/html; charset=utf-8" />
<title>javascript</title>
<style type="text/css">
body{font-size:12px;}
#txt{height:400px;width:600px;border:#333 solid 1px;padding:5px;}
p{line-height:18px;text-indent:2em;}
</style>
</head>
<body><h2 id="con">JavaScript課程</H2><div id="txt"> <h5>JavaScript為網頁添加動態效果并實現與用戶交互的功能。</h5><p>1. JavaScript入門篇,讓不懂JS的你,快速了解JS。</p><p>2. JavaScript進階篇,讓你掌握JS的基礎語法、函數、數組、事件、內置對象、BOM瀏覽器、DOM操作。</p><p>3. 學完以上兩門基礎課后,在深入學習JavaScript的變量作用域、事件、對象、運動、cookie、正則表達式、ajax等課程。</p></div><form><!--當點擊相應按鈕,執行相應操作,為按鈕添加相應事件--><input type="button" value="改變顏色" οnclick="set.changeColor()">  <input type="button" value="改變寬高" οnclick="set.changeSize()"><input type="button" value="隱藏內容" οnclick="set.objHide()"><input type="button" value="顯示內容" οnclick="set.objShow()"><input type="button" value="取消設置" οnclick="set.offSet()"></form><script type="text/javascript">var txt=document.getElementById("txt");var set={changeColor:function(){txt.style.color="red";txt.style.backgroundColor="#ccc";},changeSize:function(){txt.style.width="300px";txt.style.height="300px";},objHide:function(){txt.style.display="none";},objShow:function(){txt.style.display="block";},offSet:function(){var message=confirm("你確定要重置所有設置么?");if(message==true){txt.removeAttribute('style');}}}</script>
</body>
</html>


————————————————————————————————————————————————————————————————

以上內容參考自慕課網:http://www.imooc.com

 

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386122.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386122.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386122.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HTML實體字符列表,總結到位

前言 每年畢業季都能聽到很多報道說大學畢業生找工作難&#xff0c;以前看到這類新聞一直覺得無所謂。因為總覺得離我還早&#xff0c;但今年輪到我畢業了&#xff0c;才發現不幸終于降臨到我的頭上。 簡歷 首先肯定是要準備一份自己的簡歷&#xff0c;簡歷經常是給面試官的第…

java實現矩陣相乘

眾所周知&#xff0c;矩陣的乘法就是矩陣的行列相乘再相加。話不多說&#xff0c;直接上代碼&#xff1a; package test;public class matrixMultiply {public static void printMatrix(int[][] a, int[][] b) {int r a.length;int c b[0].length;double result[][] new dou…

你必須知道的CSS盒模型,面試建議

什么是HTML? HTML: ( Hypertext Markup Language )超文本標記語言&#xff0c;是一種標識性的語言。它包括一系列標簽&#xff0e;通過這些標簽可以將網絡上的文檔格式統一&#xff0c;使分散的Internet資源連接為一個邏輯整體。 特點: 簡易性&#xff1a;超級文本標記語言版…

你必須知道的CSS盒模型,順利通過阿里面試

前言 正式學習前端大概 3 年多了&#xff0c;接觸前端大概 4 年了&#xff0c;很早就想整理這個書單了&#xff0c;因為常常會有朋友問&#xff0c;前端該如何學習&#xff0c;學習前端該看哪些書&#xff0c;我就講講我學習的道路中看的一些書&#xff0c;雖然整理的書不多&a…

java中的幾種泛型類——HashSet、HashMap、TreeSet、TreeMap,遍歷map,排序,HashTable比較

HashSet HashSet<E>泛型類在數據組織上類似于數學上的集合&#xff0c;可以進行“交”、“并”、“差”等運算。HashSet<E>泛型類創建的對象稱為集合&#xff0c;如&#xff1a;HashSet<E> set HashSet<String>();那么set就是一個可以存儲string類型…

保駕護航金三銀四,100%好評!

前端的興起 前端真正興起和開始頻繁出現在大家的視線里&#xff0c;大概是在十年前。彼時的 Web 開發基本是由后端主導&#xff0c;前端能做的只是校驗一下數據、操作一下 DOM。&#xff08;其中數據檢驗是 JS 產生的根本原因&#xff1a;當時網絡太慢&#xff0c;在服務端檢驗…

java連接mysql數據庫(JDBC),存到二維數組里并輸出

java連接mysql數據庫都有固定的操作&#xff0c;步驟如下&#xff1a; 加載mysql驅動&#xff0c;一般都是com.mysql.jdbc.Driver。提供JDBC連接的URL。 創建數據庫的連接。要連接數據庫&#xff0c;需要向java.sql.DriverManager請求并獲得Connection對象。 創建一個Statem…

保駕護航金三銀四,萬字解析!

從事前端開發工作差不多3年了&#xff0c;自己也從一個什么都不懂的小白積累了一定的理論和實踐經驗&#xff0c;并且自己也對這3年來的學習實踐歷程有一個梳理&#xff0c;以供后面來細細回憶品味。 1、為什么選擇學習前端開發&#xff1f; 你可能是因為興趣&#xff0c;完成…

數據降維技術——PCA(主成分分析)

為什么要對數據進行降維&#xff1f; 在機器學習或者數據挖掘中&#xff0c;我們往往會get到大量的數據源&#xff0c;這些數據源往往有很多維度來表示它的屬性&#xff0c;但是我們在實際處理中只需要其中的幾個主要的屬性&#xff0c;而其他的屬性或被當成噪聲處理掉。比如&a…

保駕護航金三銀四,使用指南

前言 作為一個程序員&#xff0c;當然總是期望自己的代碼能「一次編寫&#xff0c;四處運行」&#xff0c;但真實經驗往往是「一處修改&#xff0c;百處填坑」&#xff0c;依賴落后了好幾個版本了想要升級、老代碼已經看著很不爽了打算重構&#xff0c;都需要下堅決的決心&…

社交網絡初探——鏈路預測

社交網絡可以用來描述現實社會中的實際網絡&#xff0c;它包括人與人之間的社會關系&#xff0c;物種之間的捕食關系&#xff0c;科學研究中的合作關系等。大量研究已經表明在真實世界中各種不同社交網絡具有許多共同的結構特征&#xff0c;例如小世界性質、無標度性、社團結構…

保駕護航金三銀四,內容太過真實

前言 正式學習前端大概 3 年多了&#xff0c;接觸前端大概 4 年了&#xff0c;很早就想整理這個書單了&#xff0c;因為常常會有朋友問&#xff0c;前端該如何學習&#xff0c;學習前端該看哪些書&#xff0c;我就講講我學習的道路中看的一些書&#xff0c;雖然整理的書不多&a…

決策樹——ID3和C4.5

決策樹&#xff08;decision tree&#xff09;是一個樹結構&#xff08;可以是二叉樹或非二叉樹&#xff09;。其每個非葉節點表示一個特征屬性上的測試&#xff0c;每個分支代表這個特征屬性在某個值域上的輸出&#xff0c;而每個葉節點存放一個類別。使用決策樹進行決策的過程…

保駕護航金三銀四,分分鐘搞定!

開頭 Web前端開發基礎知識學習路線分享&#xff0c;前端開發入門學習三大基礎&#xff1a;HTML、CSS、JavaScript。除此之外還要學習數據可視化、Vue、React、Angular相關框架&#xff0c;熟練運用框架提升開發效率&#xff0c;提升穩定性。 [外鏈圖片轉存失敗,源站可能有防盜…

數組的初始化及輸出

二維數組可以不初始化列數&#xff08;第二維&#xff09;。 下面給出的例子是用兩種不同的方式存儲二維數組并輸出&#xff1a; 1. 這是我們通俗易懂的二維數組存儲方法&#xff1a; String[][] data new String[][] {{ "youth", "high", "no&quo…

保駕護航金三銀四,吐血整理

前言 又逢金三銀四&#xff0c;拿到大廠的offer一直是程序員朋友的一個目標&#xff0c;我是如何拿到大廠offer的呢&#xff0c;今天給大家分享我拿到大廠offer的利器&#xff0c;前端核心知識面試寶典&#xff0c;內容囊括Html、CSS、Javascript、Vue、HTTP、瀏覽器面試題\數…

Ajax知識筆記——入門,同步和異步,XHR

Ajax全稱&#xff1a;Asynchronous Javascript and XML &#xff0c;異步的javascript和XML。 Ajax不是一種語言&#xff0c;是一種無需重新加載整個網頁的情況下&#xff0c;能更新部分網頁的技術。&#xff08;與后臺交互&#xff0c;實現局部更新&#xff0c;異步更新&…

保駕護航金三銀四,含BATJM大廠

前言 跳槽&#xff0c;這在 IT 互聯網圈是非常普遍的&#xff0c;也是讓自己升職加薪&#xff0c;走上人生巔峰的重要方式。那么作為一個普通的Android程序猿&#xff0c;我們如何才能斬獲大廠offer 呢&#xff1f; 疫情向好、面試在即&#xff0c;還在迷茫躊躇中的后浪們&…

保駕護航金三銀四,媽媽再也不用擔心我找工作了!

01 前言 2021是不平凡的一年&#xff0c;這一年里發生許多事情&#xff0c;大家也都知道。對于互聯網行業來說也是一次重大的打擊&#xff0c;也有一些企業在這次疫情中倒閉了&#xff0c;所以可能對于今年2021年畢業的同學來說是一次很大的考驗&#xff0c;也關乎我們的前途。…

web開發者工具,118頁Vue面試題總結,漲姿勢!

邏輯運算符 JavaScript中有三個邏輯運算符&#xff0c;&&與、||或、!非。 JavaScript 中的邏輯運算符可用來確定變量或者是值之間的邏輯關系。通常用于布爾型值&#xff0c;會返回一個布爾值true 或 false。而 &&、|| 運算符能夠使用非布爾值的操作數&#x…