IE6 및 IE7의 setAttribute는 class/for/rowspan/colspan_javascript 기술과 같은 속성을 지원하지 않습니다.

WBOY
풀어 주다: 2016-05-16 18:03:01
원래의
1129명이 탐색했습니다.

예를 들어 클래스 속성을 설정합니다.

코드 복사 코드는 다음과 같습니다.
el.setAttribute(' class', 'abc' );

"abc" 값은 el.getAttribute('class')를 사용하여 얻을 수 있지만 IE6/7에서는 스타일 "abc"가 작동하지 않습니다.

또 다른 예는 for 속성
코드 복사 코드는 다음과 같습니다.

<레이블>이름:
<script> <br>var lab = document.getElementsByTagName('label' )[0]; <br>lab.setAttribute('for', 'name'); <br></script>

lab이 for 속성을 설정할 때 라벨은 자동으로 해당 확인란을 선택으로 설정합니다. 그러나 위 설정은 IE6/7에서 클릭 시 체크박스가 선택되지 않습니다.

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

우선 표준 브라우저는 원래 속성 이름을 직접 사용합니다. 위에 나열된 것은 여전히 ​​원래 속성 이름을 사용합니다. 마지막으로 이러한 특수 속성(for, class와 같은 JS 키워드와 동일한 이름)은 fixAttr을 사용합니다.
이제 className/htmlFor를 고려할 필요 없이 class/for만 사용하면 됩니다.

코드 복사 코드는 다음과 같습니다.
dom.setAttr(el, 'class' , '빨간색');
dom.getAttr(el, 'class');
dom.setAttr(el, 'for', 'userName')
dom.getAttr(el, 'for' );

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!