2012-06-13 91 views
2

我有一個變量,當我用document.write()寫它的值我沒有得到真正的價值。看到這個 -變量不包含真值。怎麼樣。爲什麼?

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

有了這個點擊div我得到這個[object HTMLDivElement]。但這不是真正的價值看到如何 - 當我使用此代碼時。我預計它會隱藏所有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,因爲坦率地說,我不會在意把其餘的寫出來。請記住它只是非特異性映射來顯示:無; – rlemon

+0

我不想隱藏按鈕 – Ash

0

文件撰寫要求您發送原始的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> 

換句話說,讓你的「格」對象的HTML源代碼(使用它的innerHTML屬性),而不是渲染的「div」對象本身,併發送它。

相關問題