首頁 >web前端 >js教程 >JavaScript怎麼修改HTML標籤屬性

JavaScript怎麼修改HTML標籤屬性

青灯夜游
青灯夜游原創
2021-04-09 18:08:0211722瀏覽

javascript修改屬性的方法:先使用getElementById()、getElementsByName()或getElementsByTagName()取得到DOM物件;然後使用「DOM物件.屬性名稱=值;」來修改屬性即可。

JavaScript怎麼修改HTML標籤屬性

本教學操作環境:windows7系統、ECMAScript 5版、Dell G3電腦。

HTML DOM 物件

從JavaScript 的觀點來看,網頁上的每個HTML 標籤都是一個DOM 對象,標籤的屬性也是DOM 物件的屬性。如:

173dc41b602843afb86eee56ef8f0692

#從JavaScript 的觀點來看,這個a1f02c36ba31691bcfe87b2722de723b 標籤是一個Image 對象,它是DOM 物件的一種。它的 id、src、width、border 屬性的值已經指定,它屬性採用預設值。

利用 JavaScript 程式可以存取 DOM 對象,實際上就是用程式存取一個 HTML 標籤。你可以透過程式設計修改一個 DOM 物件的屬性,也就是用程式修改一個 HTML 標籤的屬性,讓標籤變得可控。

DOM 物件的屬性通常與對應的 HTML 標籤的屬性相對應,名字通常也是相同的,但 DOM 物件的屬性需區分大小寫。例如 border 屬性可以用在a1f02c36ba31691bcfe87b2722de723bf5d188ed2c074f8b944552db028f98a1 等幾種標籤中,則對應的Image 物件、Table 物件等DOM 對象也擁有border 屬性,取值方法也相同。

有個別 DOM 屬性的名字和 HTML 標籤的屬性名字不同,但它們實際上是同一個屬性。例如 HTML 標籤的 class 屬性對應的 DOM 屬性是className (注意大小寫)。這是因為 class 是 JavaScript 保留字,而屬性名稱是不能和保留字同名的。

還有一些 DOM 屬性沒有對應的 HTML 屬性,例如 innerHTML 是一個 DOM 屬性,它代表的是一個標籤所包含的內容。利用這個屬性可以修改一個 HTML 的開始標籤和結束標籤之間的內容。但對於a1f02c36ba31691bcfe87b2722de723b 等單一標籤,它所對應的 Image 物件沒有 innerHTML 屬性。

另外,DOM 物件也提供有方法,可以在程式中呼叫。

實際上,DOM 物件不是 JavaScript 特有的對象,它是一種跨平台的對象,有很多語言都提供了對 DOM 物件的存取支援。 JavaScript 只是其中之一。

物件的取得

用JavaScript 設定或修改一個HTML 標籤的屬性時,首先要做的就是取得這個標籤所對應的DOM 物件。常用的方法有:

1、用id 取得DOM 物件:

如果一個標籤設定了id 屬性,我們可以利用id 值來存取這個標籤,它的JavaScript 程式碼程式碼為:

<span class="c2"></span>

<code>document.getElementById( id )<br/></code>

document 是一個BOM 對象,它代表了目前的HTML 文件; getElementById 是Document 物件的一個方法;id 是網頁中某個HTML 標籤的id 屬性值。

document.getElementById( id ) 的回傳值是一個物件型數據,也就是一個 DOM 物件。

2、用name 取得DOM 物件:

如果一個標籤設定了name 屬性,我們可以利用name 值存取這個標籤,它的JavaScript 程式碼為:

document.getElementsByName( name )

說明:在一個網頁中,如果為標籤設定id 屬性,則各個標籤的id 屬性值不能相同,如果為標籤設定name 屬性,則一個網頁中可以有多個name 屬性值相同的標籤。

所以document.getElementsByName( name ) 的回傳值不是單一的對象,而是一個DOM 物件數組,它包含了本頁中所有name 值相同的那些標籤。

3、用標籤名稱取得DOM 物件:

我們可以直接用標籤名稱存取指定標籤,它的JavaScript程式碼為:

<span class="c2"></span>

document.getElementsByTagName( tagname )

說明:由於在一個網頁中,同一種標籤可以出現多次,所以document.getElementsByTagName( tagname ) 的傳回數值也是一個DOM 物件數組,它包含了本頁中指定種類的所有標籤。

比如:document.getElementsByTagName( "img" ) 返回的是一个 Image 对象数组,每个元素对应于网页中的一个a1f02c36ba31691bcfe87b2722de723b 标签,数组中的元素按 a1f02c36ba31691bcfe87b2722de723b 标签出现的顺序排列。

比较以上三种方法,document.getElementById( id ) 是最好的也是最快的方法,它可以直接访问到网页中一个指定的 HTML 标签,这也是我们今后最常使用的方法。

设置或修改标签的属性

获取了一个 DOM 对象之后,我们可以为该对象的属性进行赋值,从而修改了它所对应标签的属性值。一般方法是:

<span class="c2"></span>

DOM对象.属性名 = 值;

DOM 对象的属性名通常和HTML标签的属性名相同,但它要区分大小写,所以在书写时要特别注意。

例1:

<img id="image1" src="./image/2.jpg" border="0" /> 
 <button οnclick="setBorder(0)">border="0"</button> 
 <button οnclick="setBorder(1)">border="1"</button> 
 <button οnclick="setBorder(3)">border="3"</button> 
 <button οnclick="setBorder(8)">border="8"</button> 
 <script type="text/javascript"> 
 function setBorder( n ) 
 { 
     document.getElementById( "image1" ).border = n; 
 } 
 </script>

本例可以通过按钮修改 a1f02c36ba31691bcfe87b2722de723b 标签的 border 属性的值。

首先,为了可以访问这个 a1f02c36ba31691bcfe87b2722de723b 标签,为它定义了 id="image1" 属性。

在按钮中,利用事件句柄 onclick 响应鼠标单击事件,调用 JS 函数 setBorder()

setBorder() 函数中,利用 document.getElementById( "image1" ) 方法获取a1f02c36ba31691bcfe87b2722de723b 标签对应的 Image 对象,并为它的 border 属性设置新值。

例2:

<marquee id="Mar">欢迎光临!</marquee> 
 <p><button οnclick="setDir()">改变方向</button></p> 
 <script type="text/javascript"> 
 var dir = "left"; 
 function setDir() 
 { 
     dir = (dir=="left") ? "right" : "left"; 
     document.getElementById( "Mar" ).direction = dir; 
 } 
 </script>

本例利用按钮修改 ed126914ed1419bab26abf7cf307b7b9 标签的 direction 属性的值。

ed126914ed1419bab26abf7cf307b7b9 标签没有指定 direction 属性时,其默认值为“left”。利用 JS 程序可以修改它的值。

【推荐学习:javascript高级教程

以上是JavaScript怎麼修改HTML標籤屬性的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn