姓名:

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

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

系統 1791 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條評論
主站蜘蛛池模板: 插入综合网 | 青青青青娱乐 | 国产xxx在线观看 | 欧美日韩一二三区 | 久久久网站亚洲第一 | 99re在线| 久久久精品网 | 色精品一区二区三区 | 欧美日韩在线看 | 日韩网红少妇无码视频香港 | 日本一区二区高清视频 | 久草干 | 国产免费黄色网址 | 天堂av免费观看 | 天天色综合天天 | 手机看片日韩 | 青青青国产依人精品视频 | 黄色一级片视频 | 天天综合色天天桴色 | 欧洲亚洲精品久久久久 | 欧美四虎 | 麻豆国产精品va在线观看不卡 | 99精品在线免费观看 | 久久精品人人做人人爽 | 国产精品免费观看视频 | 国产欧美在线观看视频 | 欧美一区视频 | 91福利精品老师国产自产在线 | 国产三级一区二区三区 | 美女扣下面流白浆丝袜 | 99青草青草久热精品视频 | 国产精品久久久久无码av | 国产午夜精品一区二区三区 | 日韩av线 | 99久久精品费精品国产一区二 | 国产浮力第一浮力 | 成年视频免费观看 | 久久久精品国产 | 色妞色视频一区二区三区四区 | 精品国偷自产在线 | 欧美亚洲国产精品第一页 |