2011-12-08 2 views
0
var obj = element; 
while (obj.nodeName != 'p' && obj.nodeName != 'body') { 
    obj = obj.parentNode; 
} 
if (obj.nodeName == 'p') { 
    document.body.insertBefore(p, obj); 
} 

이것은 내 JavaScript 함수의 코드입니다. p 요소를 만들고 마지막으로 p 요소를 찾기 전에 요소를 삽입합니다. 이 코드는 xhtml 파일에서는 작동하지만 html 파일에서는 작동하지 않습니다. 아무도 그 이유를 말할 수 있습니까?Javascript는 xhtml에서 작동하지만 html에서는 작동하지 않습니다.

+1

스택 오버플로에 오신 것을 환영합니다! "작동하지 않는다"는 결코 좋은 에러 설명이 아니다. 무엇이 잘못되었는지, 어떤 오류 메시지를 받았는지 등을 설명하십시오. –

+0

디버거를 사용하여 무엇이 잘못되었는지 확인해 보셨습니까? 파이어 버그는 좋은 내기입니다. –

+0

나는 탐색기에서 그렇게 노력하지 않고있다. 그래서 많은 정보를 가지고 있지 않다. 그러나 그것은 xhtml에서 작동한다. 그리고 문제는 코딩이나 어떤 것에서 오는 것이므로 좋은 설명이다. –

답변

2

브라우저가 HTML 모드 일 때 대문자 태그 이름을 반환했을 가능성이 있습니다.

nodeName.toLowerCase()을 사용하십시오.

+0

나는 그걸 시도했지만 아무 것도하지 않았다. –

+0

문제는 p 요소가 body 바로 아래에 있지 않기 때문에 document.body에서 그것을 찾지 못하는 이유는 obj.parentNode가 잘 작동하기 때문이다. –

관련 문제