看看這裏的jsfiddle:一個空,一個帶裏面的東西,和input type=text
:Jquery(input/textarea).val():它如何在不改變DOM的情況下添加內容?
從本質上講,它有兩個textarea
S初始狀態。我的印象是,把東西放在input
你改變它的value
,並把東西放在textarea
你添加文本作爲一個孩子的節點。
我執行$(...).val(...)
來更改其內容。而他們的內容做更改。
但是,DOM看起來完全一樣!我用console.log()
打印出3個元素;他們似乎沒有改變我用鉻的檢查元素看着他們:他們似乎沒有改變。
我已經看過jQuery's val() method change doesn't seem to change the DOM,但是這個問題得出結論,它與螢火蟲並不刷新它顯示的HTML有趣。在這種情況下,我很確定檢查元素顯示頁面上存在的當前的 html:例如,我已經看到left
屬性在事物滾動時會發生瘋狂變化。我也使用控制檯檢查它,它告訴我同樣的事情:沒有任何改變。
雖然我的眼睛告訴我一些東西有變了,因爲我看到的是「10,omg,moo」而不是「空白,你好世界,2000」。這是怎麼回事?
編輯:我發佈了錯誤的jsFiddle。這應該是現在正確的一個
Firebug並不總是顯示(在其HTML選項卡中)最新版本的DOM。要在螢火蟲中「刷新」顯示的HTML,您可以選擇一個父節點(正文總是一個不錯的選擇),單擊「編輯」,更改任何內容(通常會添加一個空格),然後再次單擊「編輯」。這似乎強制Firebug刷新其顯示的DOM版本。 – devstruck 2012-04-05 17:10:34
雖然這不使用Firebug。我正在做一個'console.log',它應該打印出當前節點**是**,不是嗎? – 2012-04-05 17:29:34
啊,我的錯。 Kolink似乎很好地涵蓋了你真正的問題。 – devstruck 2012-04-05 18:55:07