需要做特殊处理的DOM元素属性的访问 |
本文标签:特殊处理,DOM元素 复制代码 代码如下: 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等,建议平时还是用 单引号,到不是说单引号一定就比双引号更好,更符合规范,但是一种习惯还是很重要的,不要在代码中即出现单引号又出现双引号的 。 举个简单的例子: 复制代码 代码如下: <label for="username" id="test">name:</label><BR><input type="text" id="username" name="username"/><BR> 假如你想直接通过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方法访问要快些 。 下面的文章会再对特殊属性的访问做介绍 。 |