IE 와 FF 에서 select. innerHTML

본의 아니 게 js 응용 프로그램 을 사 용 했 습 니 다. ajax 는 앨범 을 새로 만 들 었 습 니 다. 새로 만 든 것 은 선택 한 select 드 롭 다운 상자 에 나타 납 니 다.
즉석에서 'check - photo - id' 를 써 서 select 태그 에 올 렸 습 니 다.
 
Dom.get('check-photo-id').innerHTML = Dom.get('check-photo-id').innerHTML + '<option value='+_ss[1]+' selected >'+_ss[2]+'</option>'; 

 
테스트: FF 아래 는 정상적으로 작 동 하고 IE7 아래 는 공백 을 표시 합 니 다.
google 아래: IE 의 bug 인 것 을 발견 하고 간단 한 테스트 예 를 들 어 보 겠 습 니 다.
 
<script lanuage="JavaScript"> var tmp; for (var i = 1; i <= 10; i++) { tmp += "<option>" + "1" + "</option>"; } var select = document.getElementbyId("id"); select.innerHTML = tmp; </script> 

 
alert 일람: 01 < / option > < option > 02 < / option > < option > 03 < / option > < option > 04 < / option > < option > 05 < / option > < option > 06 < / option > < option > 07 < / option > 08 < / option > 09 < / option > < option > 10 < / option > < option > 11 < / option > 12 < / option >
"< option >" 이 없어 서 어쩐지 표시 가 안 나 오 더 라 니!
 
흙 으로 해결 할 방법 을 찾 았 습 니 다. select 의 innerHTML 에 문제 가 있 으 니 select 의 부모 노드 에서 innerHTML 을 진행 하 세 요!
 
Dom.get('select-photo').innerHTML = '<select name=\"photo_id\" id=\"check-photo-id\">' + Dom.get('check-photo-id').innerHTML + '<option value='+_ss[1]+' selected >'+_ss[2]+'</option>' + '</select><span class=\"photo-operate\"><button class=\"button create photo\">    </button></span>'; 

 
 음.. 해결!
위의 방법 은 안전 하지 않 습 니 다. 간단 하고 안전 한 방법 으로 대체 합 니 다.
var op = new Option("name","value"); op.selected = true; Dom.get('check-photo-id').options[D.get('check-photo-id').options.length] = op;

 
 결론: 간단 하고 안전 하 며 믿 을 만하 다!
 
ps: 오늘 또 IE 의 innerHTML 을 만 들 때 bug 를 발 견 했 습 니 다. p 태그 가 있 습 니 다. js 로 innerHTML 을 리 셋 합 니 다!FF 문제 없어 요. 또 IE 예요.
'알 수 없 는 런 타임 오류 (unknown runtime error)' 알림 이 나 왔 습 니 다. google 은 IE 에서 p 태그 의 innerHTML 속성 을 수정 할 때 innerHTML 값 은 블록 태그 (예: div, p, ul 등) 를 포함 할 수 없 을 것 으로 추 정 했 습 니 다. so 는 p 태그 에 innerHTML 을 설정 하 는 길 은 통 하지 않 습 니 다. div 로 바 꾸 는 것 을 권장 합 니 다!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

좋은 웹페이지 즐겨찾기