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