1 00:00:00,000 --> 00:00:00,380 2 00:00:00,380 --> 00:00:03,000 >> 揚聲器1:現在在這最後一個例子, 記得,我們​​穿插了一些 3 00:00:03,000 --> 00:00:07,170 JavaScript代碼我的HTML裡面, 具體而言,裡面的價值 4 00:00:07,170 --> 00:00:10,460 要求提交的屬性 對於表單標籤。 5 00:00:10,460 --> 00:00:12,850 現在的小頁面,這 不是什麼大不了的。 6 00:00:12,850 --> 00:00:15,950 但作為一個網頁變得更長,更 複雜的,簡單地把你的 7 00:00:15,950 --> 00:00:19,660 JavaScript代碼在這裡和那裡裡面 的屬性的值是不 8 00:00:19,660 --> 00:00:20,830 最好的設計。 9 00:00:20,830 --> 00:00:23,440 最好的,如果我們的因素,並出 至少把它的內部 10 00:00:23,440 --> 00:00:25,200 script標籤集中。 11 00:00:25,200 --> 00:00:26,080 >> 如何做到這一點? 12 00:00:26,080 --> 00:00:30,040 好吧,讓我們回到我的表單標籤和 先刪除這個屬性和它 13 00:00:30,040 --> 00:00:31,780 重視完全。 14 00:00:31,780 --> 00:00:35,730 然後在這裡,而不是限定 函數調用打招呼,讓我們掛在 15 00:00:35,730 --> 00:00:39,405 到的代碼行,最終我們 仍然要執行和替換 16 00:00:39,405 --> 00:00:41,560 在迎接功能如下。 17 00:00:41,560 --> 00:00:48,190 Document.get元素通過ID 引用引文演示 - 18 00:00:48,190 --> 00:00:52,410 在那裡演示,召回,是獨一無二的 標識符形式本身 - 19 00:00:52,410 --> 00:00:56,600 點上提交,這是召回的名字 事件處理程序,其中 20 00:00:56,600 --> 00:00:57,710 我們感興趣。 21 00:00:57,710 --> 00:01:01,990 而且我們指派的提交處理程序 值這實際上是一個 22 00:01:01,990 --> 00:01:03,740 函數本身。 23 00:01:03,740 --> 00:01:06,390 >> 現在請注意,我不是真正 這裡調用一個函數。 24 00:01:06,390 --> 00:01:10,650 我不是定義一個匿名的, 否則稱為lambda函數, 25 00:01:10,650 --> 00:01:14,100 這些大括號之間指定 一串代碼,應該 26 00:01:14,100 --> 00:01:15,490 其實是可以執行的。 27 00:01:15,490 --> 00:01:18,500 特別是,我想代碼 執行是行,我有 28 00:01:18,500 --> 00:01:23,370 前,然後讓我們添加到 返回false,因此,這種形式是不 29 00:01:23,370 --> 00:01:26,950 最終提交到結束遠程Web 在傳統方式的服務器。 30 00:01:26,950 --> 00:01:30,345 >> 現在讓我們保存這個文件,打開它 在瀏覽器中,並看看會發生什麼。 31 00:01:30,345 --> 00:01:33,050 32 00:01:33,050 --> 00:01:39,800 http://localhost/dom-1.html。 33 00:01:39,800 --> 00:01:43,060 現在,讓我們輸入我的名字, 大衛提交。 34 00:01:43,060 --> 00:01:46,900 並沒有什麼似乎已經發生了 除了我的網頁的URL似乎 35 00:01:46,900 --> 00:01:52,580 已經改變,就好像形式是 實際提交到同一個文件。 36 00:01:52,580 --> 00:01:53,870 >> 現在為什麼會這樣呢? 37 00:01:53,870 --> 00:01:55,340 嗯,我需要一些更多的信息。 38 00:01:55,340 --> 00:01:58,700 因此,讓我們去進取,不斷開拓Chrome的 開發者工具,這樣我實際上可以 39 00:01:58,700 --> 00:02:01,440 看在控制台窗口中看到 如果我做錯了什麼事。 40 00:02:01,440 --> 00:02:03,330 我可以訪問通過 一對夫婦的方式。 41 00:02:03,330 --> 00:02:07,250 其中之一就是通過這個菜單在這裡, 然後在工具,然後下降到 42 00:02:07,250 --> 00:02:08,509 開發者工具。 43 00:02:08,509 --> 00:02:12,890 >> 並注意在這裡的控制台選項卡, 有一個未捕獲的錯誤類型,不能 44 00:02:12,890 --> 00:02:15,390 在提交空的設置屬性。 45 00:02:15,390 --> 00:02:16,900 現在為什麼會這樣呢? 46 00:02:16,900 --> 00:02:21,380 以及早在我的源代碼在這裡,通知 上提交,我認為是一個 47 00:02:21,380 --> 00:02:25,360 其元素的屬性 唯一標識符是演示。 48 00:02:25,360 --> 00:02:27,810 一個元件,同樣,僅僅是 在樹中的節點。 49 00:02:27,810 --> 00:02:30,870 >> 這樣看來,我的瀏覽器不 認為該元素 50 00:02:30,870 --> 00:02:32,500 或節點存在呢。 51 00:02:32,500 --> 00:02:33,790 而事實上,它沒有。 52 00:02:33,790 --> 00:02:37,690 回想一下,一個網頁被解析或讀 通過一個網絡瀏覽器,從上到下, 53 00:02:37,690 --> 00:02:38,430 左到右。 54 00:02:38,430 --> 00:02:41,810 所以當JavaScript代碼是 遇到的,典型地,它的執行 55 00:02:41,810 --> 00:02:42,700 的時候了。 56 00:02:42,700 --> 00:02:46,460 >> 但在這種情況下,我們甚至還沒有得到 但對DOM的一部分, 57 00:02:46,460 --> 00:02:51,100 HTML中,在該表格具有獨特的 標識符演示已被宣布。 58 00:02:51,100 --> 00:02:54,320 因此,我們正在努力執行我的 該節點之前的JavaScript代碼甚至 59 00:02:54,320 --> 00:02:58,530 存在於樹的,當然,是 有問題的,因為那麼可以肯定, 60 00:02:58,530 --> 00:03:01,390 元素本身將是空的 在該時間點。 61 00:03:01,390 --> 00:03:02,390 >> 因此,如何解決? 62 00:03:02,390 --> 00:03:03,810 那麼,我們有幾個解決方案。 63 00:03:03,810 --> 00:03:07,200 但是,讓我們通過重新嘗試最簡單的 從我的頭上腳本標籤 64 00:03:07,200 --> 00:03:11,560 標記為我的身體,但具體而言,對 我的網頁的本體的底部,以便 65 00:03:11,560 --> 00:03:14,170 它的節點下方 和問題。 66 00:03:14,170 --> 00:03:19,930 具體地講,讓我們突出和切 開放的標記和腳本結束標記 67 00:03:19,930 --> 00:03:24,720 和重新定位的代碼,整幢 這裡的文件的底部。 68 00:03:24,720 --> 00:03:27,690 >> 現在這不一定是最乾淨的 設計的,但至少它會 69 00:03:27,690 --> 00:03:29,530 執行操作的正確順序。 70 00:03:29,530 --> 00:03:31,495 讓我們保存文件, 重新在我的瀏覽器。 71 00:03:31,495 --> 00:03:34,620 72 00:03:34,620 --> 00:03:40,240 讓我們刷新頁面,重新輸入我的名字, 還有,您好大衛又回來了。 73 00:03:40,240 --> 00:03:42,784