淺談JS讀取DOM對(duì)象(標(biāo)簽)的自定義屬性
DOM對(duì)象對(duì)于js來(lái)說(shuō),是個(gè)很基礎(chǔ)的元素,我們寫js一般來(lái)說(shuō),都一定會(huì)對(duì)它進(jìn)行操作。我們可以很方便地給它加上自定義的屬性,比如:
<div id="test" class="hello"></div>
var test = document.getElementById("test");
test.adang = "adang";
alert(test.adang);
我們會(huì)發(fā)現(xiàn),已經(jīng)給這個(gè)id為test的DOM元素添加了一個(gè)叫做adang的屬性了,然后在js中,可以調(diào)用這個(gè)屬性。我在寫js的時(shí)候經(jīng)常用到這種方法,可以很方便地對(duì)某個(gè)dom對(duì)象添加一些特殊的數(shù)據(jù),感覺DOM對(duì)象就像一個(gè)很好用的容器,可以放一堆數(shù)據(jù)進(jìn)去。
進(jìn)一步想到一個(gè)問(wèn)題,這些屬性可以在js中添加,那么是否可以像flex一樣,在標(biāo)簽中添加呢?事實(shí)上,像id啊,src啊這樣的屬性,都是可以在 js中添加,也可以在標(biāo)簽上添加的,兩種方式j(luò)s都可以獲取數(shù)據(jù)。這里要說(shuō)一點(diǎn),class比較特殊,標(biāo)簽中用的是class,在js中調(diào)用卻要用 className才行。
像id啊,title,src此類html中支持的屬性,可以在標(biāo)簽中設(shè)置,然后js訪問(wèn)。那么,如果是像我上面例子中的adang這樣自定義的屬性呢?DOM可以訪問(wèn)嗎?做了個(gè)實(shí)驗(yàn),如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
</head>
<script type="text/javascript">
window.onload=function(){
var test = document.getElementById("test");
test.adang = "adang";
alert(test.adang);
}
</script>
<body>
<div id="test"></div>
</body>
</html>
用js來(lái)擴(kuò)展自定義屬性,結(jié)果很正常地輸出了我們想要的結(jié)果,IE和FF下都正常。
然后我又寫了第二段代碼,如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
</head>
<script type="text/javascript">
window.onload=function(){
var test = document.getElementById("test");
alert(test.adang);
}
</script>
<body>
<div id="test" adang="adang"></div>
</body>
</html>
這次把擴(kuò)展的屬性寫到了html標(biāo)簽上。IE下正常輸出adang,FF下輸出的是undefined。
但是很奇怪的,如果使用DOM提供的方法getAttribute(""),無(wú)論是在IE下,還是FF下,都可以得到我們寫在標(biāo)簽中的自定義屬性。
所以,為了兼容,我們要使用getAttribute("")來(lái)獲取自定義的標(biāo)簽屬性的值。
以上這篇淺談JS讀取DOM對(duì)象(標(biāo)簽)的自定義屬性就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- JavaScript文檔對(duì)象模型DOM
- JavaScript Dom對(duì)象的操作
- JavaScript 中的文檔對(duì)象模型 DOM
- JavaScript變量Dom對(duì)象的所有屬性
- JS實(shí)現(xiàn)訪問(wèn)DOM對(duì)象指定節(jié)點(diǎn)的方法示例
- js基礎(chǔ)之DOM中document對(duì)象的常用屬性方法詳解
- js基礎(chǔ)之DOM中元素對(duì)象的屬性方法詳解
- JavaScript實(shí)現(xiàn)DOM對(duì)象選擇器
- JavaScript DOM 對(duì)象深入了解
- JavaScript——DOM操作——Window.document對(duì)象詳解
- jquery對(duì)象和javascript對(duì)象即DOM對(duì)象相互轉(zhuǎn)換
- js對(duì)象關(guān)系圖 方便dom操作
- javascript DOM對(duì)象的學(xué)習(xí)實(shí)例代碼
- JavaScript操作DOM對(duì)象詳解
相關(guān)文章
JavaScript實(shí)現(xiàn)移動(dòng)端橫豎屏檢測(cè)
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)移動(dòng)端橫豎屏檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07
ant design中實(shí)現(xiàn)table的表格行的拖拽
這篇文章主要介紹了ant design中實(shí)現(xiàn)table的表格行的拖拽,文章圍繞table表格行拖拽實(shí)現(xiàn)的相關(guān)資料展開詳細(xì)的代碼內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-03-03
Canvas實(shí)現(xiàn)放射線動(dòng)畫效果
本文主要分享了Canvas實(shí)現(xiàn)放射線動(dòng)畫的示例代碼。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02
微信小程序?qū)崙?zhàn)之上拉(分頁(yè)加載)效果(2)
這篇文章主要介紹了微信小程序?qū)崙?zhàn)之上拉加載、分頁(yè)加載效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
JS實(shí)現(xiàn)json對(duì)象數(shù)組按對(duì)象屬性排序操作示例
這篇文章主要介紹了JS實(shí)現(xiàn)json對(duì)象數(shù)組按對(duì)象屬性排序操作,涉及javascript使用sort方法針對(duì)json數(shù)組的遍歷與排序相關(guān)操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-05-05

