国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

IE6、IE7中setAttribute不支持class/for/rowspan/colspan等屬性

2019-11-20 23:42:13
字體:
供稿:網(wǎng)友
如設(shè)置class屬性
復(fù)制代碼 代碼如下:
el.setAttribute('class', 'abc');

在IE6/7中樣式“abc”將沒有起作用,雖然使用el.getAttribute('class')能取到值“abc”。

又如for屬性
復(fù)制代碼 代碼如下:

<label>姓名:</label><input type="checkbox" id="name"/>
<script>
var lab = document.getElementsByTagName('label')[0];
lab.setAttribute('for', 'name');
</script>

我們知道當(dāng)lab設(shè)置了for屬性,點(diǎn)擊label將自動將對應(yīng)的checkbox選中。但以上設(shè)置在IE6/7點(diǎn)擊將不會選中checkbox。

類似的情況還發(fā)生在 cellspacing/cellpadding 上。匯總?cè)缦拢?
class
for
cellspacing
cellpadding
tabindex
readonly
maxlength
rowspan
colspan
usemap
frameborder
contenteditable
因此,當(dāng)寫一個(gè)通用的跨瀏覽器的設(shè)置元素屬性的接口方法時(shí)需要考慮注意以上屬性在IE6/7中的特殊性。如下
復(fù)制代碼 代碼如下:

dom = (function() {
var fixAttr = {
tabindex: 'tabIndex',
readonly: 'readOnly',
'for': 'htmlFor',
'class': 'className',
maxlength: 'maxLength',
cellspacing: 'cellSpacing',
cellpadding: 'cellPadding',
rowspan: 'rowSpan',
colspan: 'colSpan',
usemap: 'useMap',
frameborder: 'frameBorder',
contenteditable: 'contentEditable'
},
div = document.createElement( 'div' );
div.setAttribute('class', 't');
var supportSetAttr = div.className === 't';
return {
setAttr : function(el, name, val) {
el.setAttribute(supportSetAttr ? name : (fixAttr[name] || name), val);
},
getAttr : function(el, name) {
return el.getAttribute(supportSetAttr ? name : (fixAttr[name] || name));
}
}
})();

首先,標(biāo)準(zhǔn)瀏覽器直接使用原始屬性名;其次,IE6/7非以上列舉的屬性仍然用原始屬性名;最后這些特殊屬性(與JS關(guān)鍵字同名如for,class)使用fixAttr。
好了,現(xiàn)在不用考慮className/htmlFor了,都使用class/for即可。
復(fù)制代碼 代碼如下:

dom.setAttr(el, 'class', 'red');
dom.getAttr(el, 'class');
dom.setAttr(el, 'for', 'userName');
dom.getAttr(el, 'for');
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 四平市| 彰化县| 大城县| 大城县| 五寨县| 海安县| 信宜市| 梓潼县| 千阳县| 扎囊县| 辉县市| 梅河口市| 年辖:市辖区| 安泽县| 富蕴县| 大庆市| 嘉鱼县| 保康县| 武夷山市| 温宿县| 沁水县| 伊宁市| 桦川县| 金阳县| 盱眙县| 台北市| 姜堰市| 南陵县| 凯里市| 镇远县| 雅安市| 澄城县| 临澧县| 祥云县| 新田县| 庆阳市| 沈丘县| 萝北县| 乌拉特中旗| 栾城县| 镇平县|