特殊な処理が必要なDOM要素属性へのアクセス

1425 ワード

 
  
var props = {
  'for' : 'htmlFor',
  'class': 'className',
  readonly: 'readOnly',
  maxlength: 'maxLength',
  cellspacing: 'cellSpacing',
  rowspan: 'rowSpan',
  colspan: 'colSpan',
  tabindex: 'tabIndex',
  usemap: 'useMap',
  frameborder: 'frameBorder'
}

余談ですが、json形式でオブジェクトを作成する場合は、属性には単一引用符や二重引用符は必要ありません.ecmascriptのキーワード、例えば上の「for」、「class」などがない限り、普段は使うことをお勧めします.
単一引用符は、単一引用符が二重引用符よりも優れているとは限らず、規範に合っているが、コードに単一引用符が現れたり、二重引用符が現れたりしない習慣が重要である.
簡単な例を挙げます.
 
  




elemを直接通過したいならpropertyNameのようなアクセス方法でDOM要素の属性値を得るには、上の属性アクセスに対して簡単な変更が必要です.
例えば、上記の例では、labelのfor属性値を取得したいと思っています.
 
  
var ele = document.getElementById('test');
var val = ele.htmlFor;
//
val = ele['htmlFor'];
// DOM ,
val = ele.getAttribute('for');
val = ele.getAttributeNode('for').value;

同様にclass,readonlyなどのアクセスにも,上記のいくつかのアクセス方式が適している.
個人的には、直接プロパティを介してアクセスするのはDOMメソッドを介してアクセスするよりも速いかもしれません.
次の記事では、特殊なプロパティへのアクセスについて説明します.