姓名:

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

IE6/7中setAttribute不支持class/for/rowspan/c

系統 2073 0
今天在學習中遇到了在ie中設置class屬性值的bug,現寫出來與大家分享,一起共勉,如有錯漏望不吝指正。

如:

elm.setAttribute('class', 'className');
在IE6/7中樣式“className”并沒有起作用,雖然使用elm.getAttribute('class')是可以獲取到“className”。
后來上網查了一些資料,發現了在ie中其實還有一部分屬性也會有這樣的問題,像for屬性





<label>姓名:</label>
<input type="checkbox" id="name"/>
<script>
??? var lab = document.getElementsByTagName('label')[0];
??? lab.setAttribute('for', 'name');
</script>
理論上如果lab設置了for屬性,點擊label時會自動將對應的checkbox選中。但在IE6/7點擊并沒有選中相應的checkbox。

而且類似的情況還發生在 cellspacing/cellpadding 等屬性上,現列出來,大家可以認一下,以后做的時候可以注意一下:
class
for
cellspacing
cellpadding
tabindex
readonly
maxlength
rowspan
colspan
usemap
frameborder
contenteditable

所以,當在寫一個通用的跨瀏覽器的設置元素屬性的接口方法時,我們就需要考慮注意以上屬性在IE6/7中的特殊性。
網上就有位朋友寫了如下方法以解決上面的問題:


































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));??????
??????? }
??? }
})();

首先,標準瀏覽器直接使用原始屬性名;其次,IE6/7非以上列舉的屬性仍然用原始屬性名;最后這些特殊屬性(與JS關鍵字同名如for,class)使用fixAttr。

到了這里,我們就不用考慮className/htmlFor了,直接使用class/for即可。




dom.setAttr(el, 'class', 'red');
dom.getAttr(el, 'class');

dom.setAttr(el, 'for', 'userName');
dom.getAttr(el, 'for');

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


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 免费的黄色小视频 | 亚洲光棍天堂 | 亚洲国产综合人成综合网站00 | 欧美一区二区三区综合色视频 | 国产美女激情 | 日本a∨在线播放高清 | 综合图色| 九九视频在线观看视频6偷拍 | 国产成年视频 | 干一干操一操 | 婷婷激情四月 | 国产码欧美日韩高清综合一区 | 亚洲精品成人久久 | 性做久久久久免费看 | 97国产在线公开免费观看 | 狠狠狠狠狠狠 | 国产在线视频99 | 97se亚洲综合在线天天 | 色狠狠婷婷97 | 亚洲黄色在线看 | 三级西施 | 91成人影院未满十八勿入 | 午夜一级影院 | 精品免费久久久久久成人影院 | 操野逼| 青青草a免费线观a | 狠狠干天天 | 高清不卡日本v在线二区 | 中文字幕一区二区三区四区 | 在线免费一区二区 | 一级做a爱片特黄在线观看 一级做a爱片特黄在线观看免费看 | 香蕉蕉亚亚洲aav综合 | 亚洲免费在线播放 | 99九九99九九九视频精品 | 337p欧美超大胆日本人术艺术 | 亚洲片在线| 久久er热这里只有精品免费 | 亚洲免费网站在线观看 | 97久久精品人人澡人人爽 | 日韩欧美伊人久久大香线蕉 | 久久久久久久99精品免费 |