문제
나는 이것이 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"));
이상해...아주 이상해
제휴하지 않습니다 StackOverflow