2012-06-13 4 views
2

나는 값을 쓸 때 document.write()을 사용하여 변수를 가진다. 나는 진정한 가치를 얻지 못한다. 내가이 [object HTMLDivElement]을 얻을 DIV를 클릭하여이와 this-변수에 true 값이 없습니다. 방법. 왜?

<div onclick="a=this;document.write(a)">this is div</div> 

를 참조하십시오. 나는이 코드를 사용하는 경우 대제

<button onclick="[object HTMLDivElement].style.visibility='hidden'">click me</button> 

그러나이없는 진정한 가치는 참조하십시오. 모든 div 엘리먼트를 숨길 것으로 예상했다. 그러나 나는 그것을 얻지 않았다. 왜?

참고 : -

내가 더 좋은 방법이 싶지 않아, 난 내 코드에서 문제를 알고 싶어요.

+0

DIV를 숨기려고합니까? – Joe

+0

그 코드는 매우 잘못되었습니다. – SLaks

+0

내가 잘못 알고 있지만 무엇이 잘못되었는지 묻고 있습니까? – Ash

답변

4

document.write에 개체를 전달하면 .toString()을 호출하여 개체를 문자열로 변환합니다.

<div> DOM 요소에서 호출 될 경우 toString()"[object HTMLDivElement]"을 반환합니다.

이것은 객체의 문자열 표현입니다. 그 문자열에서 원래의 객체를 검색하는 것은 근본적으로 불가능합니다.

0
this[object HTMLDivElement]하지 첫 번째 예에서 부울 값이기 때문이다

....

<button onclick="this.hidden=true;">click me</button> 

+0

나는 hidden = true를 사용합니다. 왜냐하면, 솔직하게, 나머지는 쓸 수 없었기 때문입니다. 명심해라. 그것은 표시 할 수있는 특이성 매핑이 아니다 : none; – rlemon

+0

버튼을 숨기고 싶지 않습니다. – Ash

0

document.write를 작동합니다 그것이 원시 HTML (문자열 보낼 것을 요구, 기본적으로)하지만 대신 실수로 "div"객체를 보내려고합니다.

나는이 테스트를하지 않은,하지만 난 그게 더 의미 올바르게

<div onclick="a=this.innerHTML;document.write(a)">this is div</div> 

또는 작동합니다 가정, 즉

<div onclick="a=this;document.write(a.innerHTML)">this is div</div> 

을 당신의 "DIV"개체의 HTML 소스를 얻을 (innerHTML 속성을 사용하여) 렌더링 된 "div"객체 자체가 아니라 그것을 보냅니다.

관련 문제