0
當我們說DOM加載時,我的意思是DOM,而不是頁面。 在瀏覽器中發生了什麼! DOM何時加載?請你能更精確。 謝謝當dom加載完全是怎麼回事?
當我們說DOM加載時,我的意思是DOM,而不是頁面。 在瀏覽器中發生了什麼! DOM何時加載?請你能更精確。 謝謝當dom加載完全是怎麼回事?
「當DOM被加載但不是頁面」並不真正意義。在加載HTML時,瀏覽器會將其呈現爲您在屏幕上看到的靜態頁面。 DOM是允許與這些元素進行交互的表示。
例如,我可以在JavaScript中創建對象然後操縱它們,但我只操作了一個簡單的對象。一個DOM對象看起來像是同一個對象,但它與一個相關的[X | XH | H] TML對象綁定在一起;所以當我在這個對象上調用一個方法時,它不僅與一個信息容器交互,而且還與頁面上的組成節點交互。因此,您不能在尚未呈現的元素上使用DOM方法。
有形例如:
/* Manipulating a standard JavaScript object */
var obj = { firstProp: "InitialValue",
secondProp: "somethingelse",
aMethod: function(){ this.firstProp = "Changed" }
}
console.log(obj.firstProp); // Ouput is "InitialValue"
obj.aMethod();
console.log(obj.firstProp); // Output is "Changed", but nothing is effected other than that value
/* Here is a method called on a DOM element; pretend it's an input/text */
var obj2 = document.getElementById("testId");
obj2.value = "This is your new text box value";
在第二個例子,你看,我不只是改變任意一個對象的值。我已經改變了該HTML對象的呈現形式。
這是我現在可以考慮解釋的最好方法。
是的,謝謝你,我瞭解一點原理它是如何工作的 – mizanoviche 2014-09-02 20:39:45
我會繼續使用HTML示例,因爲它們易於掌握。當瀏覽器解析頁面時,它會保留對元素的位置的引用,並且已經知道可用的方法;包括它的父/子對象。所以在上面的例子中,'document.getElementById'是一個選擇器方法,它在obj2中存儲一個引用(其中document是頂層節點,「testId」是子節點,「get ...」是選擇方式) 。然後'value'是一個可用的方法來改變相應的文本框的值。如果這不明確,那麼我不認爲我完全理解你的問題。 – Gary 2014-09-02 20:50:26