需要做特殊處理的DOM元素屬性的訪問
更新時(shí)間:2010年11月05日 22:48:41 作者:
這些都是很基礎(chǔ)的,很簡單,記下來都是因?yàn)榕伦约阂粫r(shí)想不起來了,到時(shí)可以看看,順便鞏固下自己的基礎(chǔ)知識(shí)。
復(fù)制代碼 代碼如下:
var props = {
'for' : 'htmlFor',
'class': 'className',
readonly: 'readOnly',
maxlength: 'maxLength',
cellspacing: 'cellSpacing',
rowspan: 'rowSpan',
colspan: 'colSpan',
tabindex: 'tabIndex',
usemap: 'useMap',
frameborder: 'frameBorder'
}
說點(diǎn)題外話,用json格式來創(chuàng)建對(duì)象的話,建議屬性不需要單引號(hào)或者雙引號(hào),除非一些ecmascript的關(guān)鍵詞,比如上面的'for','class'等,建議平時(shí)還是用
單引號(hào),到不是說單引號(hào)一定就比雙引號(hào)更好,更符合規(guī)范,但是一種習(xí)慣還是很重要的,不要在代碼中即出現(xiàn)單引號(hào)又出現(xiàn)雙引號(hào)的。
舉個(gè)簡單的例子:
復(fù)制代碼 代碼如下:
<label for="username" id="test">name:</label><BR><input type="text" id="username" name="username"/><BR>
假如你想直接通過elem.propertyName這樣的訪問方式來得到某個(gè)DOM元素的某個(gè)屬性值,對(duì)于上面的屬性訪問你就必須做個(gè)簡單的變化,
例如上面的這個(gè)例子,你想得到label的for屬性值。
復(fù)制代碼 代碼如下:
var ele = document.getElementById('test');
var val = ele.htmlFor;
//或者
val = ele['htmlFor'];
//通過標(biāo)準(zhǔn)的DOM方法訪問的話,就不需要做特殊處理了
val = ele.getAttribute('for');
val = ele.getAttributeNode('for').value;
同樣對(duì)于class,readonly等的訪問,上面的幾種訪問方式也一樣適合。
個(gè)人覺得直接通過屬性訪問或許會(huì)比通過DOM方法訪問要快些。
下面的文章會(huì)再對(duì)特殊屬性的訪問做介紹。
相關(guān)文章
javascript針對(duì)DOM的應(yīng)用分析(二)
今天第二章,繼續(xù)講獲取頁面中DOM元素。大家都知道在JQ中想獲取一個(gè)元素的兄弟元素,父級(jí)元素,子元素等等是非常方便的2012-04-04關(guān)于firefox的ElementTraversal 接口 使用說明
關(guān)于firefox的ElementTraversal 接口 使用說明,需要的朋友可以參考下。2010-11-11KVM虛擬化技術(shù)之使用Qemu-kvm創(chuàng)建和管理虛擬機(jī)的方法
這篇文章主要介紹了KVM虛擬化技術(shù)之使用Qemu-kvm創(chuàng)建和管理虛擬機(jī)的方法,需要的朋友可以參考下2016-10-10DOM2非標(biāo)準(zhǔn)但卻支持很好的幾個(gè)屬性小結(jié)
DOM2非標(biāo)準(zhǔn)但卻支持很好的幾個(gè)屬性小結(jié),需要dom操作的朋友可以參考下2012-01-01什么是DOM(Document Object Model)文檔對(duì)象模型
文檔對(duì)象模型(Document Object Model,DOM)是一種用于HTML和XML文檔的編程接口。它給文檔提供了一種結(jié)構(gòu)化的表示方法,可以改變文檔的內(nèi)容和呈現(xiàn)方式2012-03-03javascript拓展DOM操作 prependChild insertAfert
Javascript dom操作中有appendChild 和insertBefore 卻沒有prependChild 和insertAfter2010-11-11Dom 結(jié)點(diǎn)創(chuàng)建 基礎(chǔ)知識(shí)
節(jié)點(diǎn)操作基礎(chǔ)知識(shí)回顧,需要dom操作的朋友可以參考下。2011-10-10