문제

나는 이것이 IE 6.0에만 국한된 것이라고 생각하지만 ...

JavaScript에서는 div DOM에.나는 할당한다 id 기인하다.나중에 물건을 받으려고 하면 div 에 의해 id 내가 얻는 전부는 null.

어떤 제안이 있으십니까?

예:

var newDiv = document.createElement("DIV");
newDiv.setAttribute("ID", "obj_1000");
document.appendChild(newDiv);

alert("Added:" + newDiv.getAttribute("ID") + ":" + newDiv.id + ":" + document.getElementById("obj_1000") );

경고 인쇄 "::null"

Firefox 2.0 이상에서는 제대로 작동하는 것 같습니다.

도움이 되었습니까?

해결책

다른 답변에서 제안하는 것 외에도 (요소를 DOM에 실제로 삽입해야 찾을 수 있음) getElementById()), IE6에서 이를 인식하려면 소문자 속성 이름을 사용해야 합니다. id:

var newDiv = document.createElement("DIV"); 
newDiv.setAttribute("id", "obj_1000");
document.body.appendChild(newDiv);

alert("Added:"
   + newDiv.getAttribute("id") 
   + ":" + newDiv.id + ":" 
   + document.getElementById("obj_1000") );

...예상대로 응답합니다.

Added:obj_1000:obj_1000:[object]

에 따르면 MSDN 문서 ~을 위한 setAttribute(), IE8까지는 선택 사항이 있습니다 세 번째 매개변수 속성 이름과 관련하여 대소문자를 구분하는지 여부를 제어합니다.기본값이 무엇인지 추측해 보세요.

다른 팁

문서의 일부가 되려면 div를 요소에 추가해야 합니다.

document.appendChild(newDiv);

alert( document.getElementById("obj_1000") );

DOM에 div를 추가해야 합니다.

// Create the Div
var oDiv = document.createElement('div');
document.body.appendChild(oDiv);

newDiv.setAttribute( "ID", "obj_1000" );

해야한다

newDiv.id = "obj_1000";

흠, 저를 올바른 방향으로 인도해주셔서 감사합니다...이상했지만 대소문자를 소문자로 바꾸면 모든 것이 잘 작동하기 시작했습니다...

완료된 결과:

var newDiv = document.createElement("DIV");
newDiv.setAttribute("id", "obj_1000");
document.appendChild(newDiv);

alert("Added:" +
      newDiv.getAttribute("id") + ":" +
      newDiv.id + ":" +
      document.getElementById("obj_1000"));

이상해...아주 이상해

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top