家好,我是IT共享者,人稱皮皮。
相信做網站對JavaScript再熟悉不過了,它是一門腳本語言,不同于Python的是,它是一門瀏覽器腳本語言,而Python則是服務器腳本語言,我們不光要會Python,還要會JavaScript,因為它對做網頁方面是有很大作用的。
這是我們用的最普遍的一個文檔對象了,專門用來操作DOM節點時用。
document.getElementById() #通過id查找HTML元素
document.getElementsByName() #通過name查找HTML元素
document.getElementsByTagName() #通過標簽名查找HTML元素
document.getElementsByClassName() #通過類名查找HTML元素
document.querySelector(".h") #第一個類名為 "h" 的元素
document.querySelectorAll("div.no, div#h") #所有class為"no"或者id為"h"的div元素
document.body #獲取body標簽
document.documentElement #獲取html標簽
document.cookie #網頁cookie
document.domain #文檔的域名
document.lastModified #文檔被最后修改的日期和時間
document.referrer #載入當前文檔的文檔的URL
document.title #當前文檔的標題
document.URL #當前文檔的URL
document.doctype #當前文檔的doctype
document.baseURI #當前文檔的絕對URI
document.documentMode #瀏覽器使用的模式
document.documentURI #文檔的URI
document.implementation #DOM實現
document.inputEncoding #文檔的編碼(字符集)
document.readyState #文檔的(加載)狀態
document.strictErrorChecking #是否強制執行錯誤檢查
document.write('hello world') 向文檔寫入文本
document.writeln('hello world') 向文檔寫入文本并換行
document.all #所有html元素
document.anchors #所有Anchor引用
document.forms #所有的表單引用
document.images #所有的圖片引用
document.links #所有的超鏈接引用
document.scripts #所有的腳本引用
document.embeds #所有的流媒體引用
childNodes #獲取子節點的集合 ,返回數組 ,并把換行和空格也當成是節點信息。
children #獲取子節點的集合 ,返回數組
firstChild #獲取第一個子元素 并把換行和空格也當成是節點信息
firstElementChild #獲取第一個子節點
lastChild #獲取最后一個子節點 并把換行和空格也當成是節點信息
lastElementChild #獲取最后一個子節點
parentNode #獲取父節點
parentElement #獲取父節點(IE)
offsetParent #獲取所有父節點 對應的值是body下的所有節點信息
previousSibling #獲取上一個兄弟節點 匹配字符,包括換行和空格,而不是節點
previousElementSibling #獲取上一個兄弟節點 直接匹配節點
nextSibling #獲取下一個兄弟節點 匹配字符,包括換行和空格,而不是節點
nextElementSibling #獲取下一個兄弟節點 直接匹配節點
ownerDocument #元素的根節點
這里我們獲取到了所有的Div元素,我們可以針對性的獲取一個ID下的Div的子元素以及它的兄弟和父,子元素,如下:
我們可以自定義節點并添加值,不過要將它添加到文檔中去,所以必須添加節點,一般和下方的增加節點配套使用。
document.createElement(標簽) #創建HTML元素
document.createTextNode(文本) #給文檔添加文本
document.createComment(文本) #創建一個注釋節點
document.createDocumentFragment() #創建文檔粉碎節點
appendChild(節點) #節點被添加到元素的末尾
insertBefore(a,b) #a節點會插入b節點的前面
removeChild(節點名) #被移除的節點仍在文檔中,只是文檔中已沒有其位置了
replaceChild(插入的節點,被替換的節點)
a.cloneChild() #復制a節點,復制出來的節點作為返回值為true時,則a元素后代也一并復制。否則,僅復制a元素本身
#節點類型 nodeType 有三種情況
#1.元素節點 2.屬性節點 3.文本節點
#節點名稱 nodeName
#節點值 nodeValue
#元素節點沒節點值,為null
#文本節點的節點值就是文本
#屬性節點的節點值就是該屬性值
#節點屬性獲取
a.width
a['width']
a.gerAttribute(屬性名) 返回指定的屬性值
a.gerAttributeNode(屬性名) 返回指定的屬性節點
節點屬性設置
a.width=400
a['width']=400
a.attributes['width']=400
a.setAttribute('width',400) 添加指定的屬性
a.setAttributeNode(b) 添加指定的屬性節點
#節點屬性刪除
a.removeChild(子節點) 從元素中移除子節點
a.removeAttribute(屬性) 從元素中移除指定屬性
a.removeAttributeNode(屬性) 移除指定的屬性節點,并返回被移除的節點
a.id 獲取當前元素的id
a.className 獲取當前元素的class
a.classList 獲取當前元素的class列表
a.accessKey='w' 設置或返回元素的快捷鍵
a.namespaceURI 返回指定節點的命名空間的 URI
a.dir 設置或返回元素的內容是否可編輯
a.normalize() 合并元素中相鄰的文本節點,并移除空的文本節點
a.tabIndex='3' 設置或返回元素的tab鍵控制次序
a.tagName 返回元素的標簽名
a.textContent 設置或返回節點及其子代的文本內容
a.title 設置或返回元素的標題屬性
a.item(num) 返回節點列表中位于指定下標的節點
a.length 返回節點列表中的節點數
a.innerHTML 獲取或者設置對象內的HTML
a.innerText 獲取或者設置對象內的文本
a.outerHTML 獲取或者設置對象外的HTML
a.outerText 獲取或者設置對象外的文本
a.value 獲取或者設置表單元素的值
這篇文章主要介紹了JavaScript的文檔對象。下一篇文章,我們繼續介紹JavaScript,敬請期待!
當網頁被加載時,瀏覽器會創建頁面的文檔對象模型(Document Object Model)。
HTML DOM 定義了用于 HTML 的一系列標準的對象,以及訪問和處理 HTML 文檔的標準方法。通過 DOM,你可以訪問所有的 HTML 元素,連同它們所包含的文本和屬性。
HTML DOM 模型被構造為對象的樹:
//通過 id 查找 HTML 元素
var x=document.getElementById("intro");
//通過標簽名查找 HTML 元素
var x=document.getElementById("main");
var y=x.getElementsByTagName("p");
//通過類名找到 HTML 元素
var x=document.getElementsByClassName("intro");
//改變 HTML 輸出流
document.write(Date());
//絕對不要在文檔加載完成之后使用,用btn點擊事件執行 document.write()。這會覆蓋該文檔。
//改變 HTML 內容
document.getElementById(id).innerHTML=new HTML
//改變 HTML 屬性
document.getElementById(id).attribute=new value
//改變 HTML 樣式
document.getElementById("p2").style.color="blue";
document.getElementById("p2").style.fontFamily="Arial";
document.getElementById("p2").style.fontSize="larger";
<h1 id="id1">我的標題 1</h1>
<button type="button" onclick="document.getElementById('id1').style.color='red'">
點我!</button>
//對事件做出反應
<h1 onclick="this.innerHTML='Ooops!'">點擊文本!</h1>
<script>
function changetext(id){
id.innerHTML="Ooops!";
}
</script>
</head>
<body>
<h1 onclick="changetext(this)">點擊文本!</h1>
</body>
//HTML 事件屬性
<body>
<p>點擊按鈕執行 <em>displayDate()</em> 函數.</p>
<button onclick="displayDate()">點我</button>
<script>
function displayDate()
{
document.getElementById("demo").innerHTML=Date();
}
</script>
<p id="demo"></p>
</body>
//使用 HTML DOM 來分配事件
document.getElementById("myBtn").onclick=function(){displayDate()};
//onchange 事件
<script>
function myFunction(){
var x=document.getElementById("fname");
x.value=x.value.toUpperCase();
}
</script>
</head>
<body>
輸入你的名字: <input type="text" id="fname" onchange="myFunction()">
<p>當你離開輸入框后,函數將被觸發,將小寫字母轉為大寫字母。</p>
</body>
//addEventListener() 方法
<body>
<p>該實例使用 addEventListener() 方法在按鈕中添加點擊事件。 </p>
<button id="myBtn">點我</button>
<p id="demo"></p>
<script>
document.getElementById("myBtn").addEventListener("click", displayDate);
function displayDate() {
document.getElementById("demo").innerHTML = Date();
}
</script>
</body>
//向原元素添加事件句柄
<body>
<p>該實例使用 addEventListener() 方法在按鈕中添加點擊事件。 </p>
<button id="myBtn">點我</button>
<script>
document.getElementById("myBtn").addEventListener("click", function(){
alert("Hello World!");
});
</script>
//向同一個元素中添加多個事件句柄
<body>
<p>該實例使用 addEventListener() 方法向同個按鈕中添加兩個點擊事件。</p>
<button id="myBtn">點我</button>
<script>
var x = document.getElementById("myBtn");
x.addEventListener("click", myFunction);
x.addEventListener("click", someOtherFunction);
function myFunction() {
alert ("Hello World!")
}
function someOtherFunction() {
alert ("函數已執行!")
}
</script>
</body>
在文檔對象模型 (DOM) 中,每個節點都是一個對象。DOM 節點有三個重要的屬性,分別是:
創建新的 HTML 元素
<body>
<div id="div1">
<p id="p1">這是一個段落。</p>
<p id="p2">這是另一個段落。</p>
</div>
<script>
var para=document.createElement("p");
var node=document.createTextNode("這是一個新段落。");
para.appendChild(node);
var element=document.getElementById("div1");
element.appendChild(para);
</script>
刪除已有的 HTML 元素
<body>
<div id="div1">
<p id="p1">這是一個段落。</p>
<p id="p2">這是另一個段落。</p>
</div>
<script>
var parent=document.getElementById("div1");
var child=document.getElementById("p1");
parent.removeChild(child);
</script>
</body>
以上內容整理于網絡,如有侵權請聯系刪除。
TML 音頻/視頻 DOM 參考手冊
HTML5 DOM 為 <audio> 和 <video> 元素提供了方法、屬性和事件。
這些方法、屬性和事件允許您使用 JavaScript 來操作 <audio> 和 <video> 元素。
HTML 音頻/視頻 方法
方法 | 描述 |
---|---|
addTextTrack() | 向音頻/視頻添加新的文本軌道。 |
canPlayType() | 檢測瀏覽器是否能播放指定的音頻/視頻類型。 |
load() | 重新加載音頻/視頻元素。 |
play() | 開始播放音頻/視頻。 |
pause() | 暫停當前播放的音頻/視頻。 |
HTML 音頻/視頻屬性
屬性 | 描述 |
---|---|
audioTracks | 返回表示可用音頻軌道的 AudioTrackList 對象。 |
autoplay | 設置或返回是否在加載完成后隨即播放音頻/視頻。 |
buffered | 返回表示音頻/視頻已緩沖部分的 TimeRanges 對象。 |
controller | 返回表示音頻/視頻當前媒體控制器的 MediaController 對象。 |
controls | 設置或返回音頻/視頻是否顯示控件(比如播放/暫停等)。 |
crossOrigin | 設置或返回音頻/視頻的 CORS 設置。 |
currentSrc | 返回當前音頻/視頻的 URL。 |
currentTime | 設置或返回音頻/視頻中的當前播放位置(以秒計)。 |
defaultMuted | 設置或返回音頻/視頻默認是否靜音。 |
defaultPlaybackRate | 設置或返回音頻/視頻的默認播放速度。 |
duration | 返回當前音頻/視頻的長度(以秒計)。 |
ended | 返回音頻/視頻的播放是否已結束。 |
error | 返回表示音頻/視頻錯誤狀態的 MediaError 對象。 |
loop | 設置或返回音頻/視頻是否應在結束時重新播放。 |
mediaGroup | 設置或返回音頻/視頻所屬的組合(用于連接多個音頻/視頻元素)。 |
muted | 設置或返回音頻/視頻是否靜音。 |
networkState | 返回音頻/視頻的當前網絡狀態。 |
paused | 設置或返回音頻/視頻是否暫停。 |
playbackRate | 設置或返回音頻/視頻播放的速度。 |
played | 返回表示音頻/視頻已播放部分的 TimeRanges 對象。 |
preload | 設置或返回音頻/視頻是否應該在頁面加載后進行加載。 |
readyState | 返回音頻/視頻當前的就緒狀態。 |
seekable | 返回表示音頻/視頻可尋址部分的 TimeRanges 對象。 |
seeking | 返回用戶是否正在音頻/視頻中進行查找。 |
src | 設置或返回音頻/視頻元素的當前來源。 |
startDate | 返回表示當前時間偏移的 Date 對象。 |
textTracks | 返回表示可用文本軌道的 TextTrackList 對象。 |
videoTracks | 返回表示可用視頻軌道的 VideoTrackList 對象。 |
volume | 設置或返回音頻/視頻的音量。 |
HTML 音頻/視頻事件
事件 | 描述 |
---|---|
abort | 當音頻/視頻的加載已放棄時觸發。 |
canplay | 當瀏覽器可以開始播放音頻/視頻時觸發。 |
canplaythrough | 當瀏覽器可在不因緩沖而停頓的情況下進行播放時觸發。 |
durationchange | 當音頻/視頻的時長已更改時觸發。 |
emptied | 當目前的播放列表為空時觸發。 |
ended | 當目前的播放列表已結束時觸發。 |
error | 當在音頻/視頻加載期間發生錯誤時觸發。 |
loadeddata | 當瀏覽器已加載音頻/視頻的當前幀時觸發。 |
loadedmetadata | 當瀏覽器已加載音頻/視頻的元數據時觸發。 |
loadstart | 當瀏覽器開始查找音頻/視頻時觸發。 |
pause | 當音頻/視頻已暫停時觸發。 |
play | 當音頻/視頻已開始或不再暫停時觸發。 |
playing | 當音頻/視頻在因緩沖而暫停或停止后已就緒時觸發。 |
progress | 當瀏覽器正在下載音頻/視頻時觸發。 |
ratechange | 當音頻/視頻的播放速度已更改時觸發。 |
seeked | 當用戶已移動/跳躍到音頻/視頻中的新位置時觸發。 |
seeking | 當用戶開始移動/跳躍到音頻/視頻中的新位置時觸發。 |
stalled | 當瀏覽器嘗試獲取媒體數據,但數據不可用時觸發。 |
suspend | 當瀏覽器刻意不獲取媒體數據時觸發。 |
timeupdate | 當目前的播放位置已更改時觸發。 |
volumechange | 當音量已更改時觸發。 |
waiting | 當視頻由于需要緩沖下一幀而停止時觸發。 |
如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。