首頁 web前端 js教程 JavaScript初级教程(第五课)_基础知识

JavaScript初级教程(第五课)_基础知识

May 16, 2016 pm 07:15 PM

    现在你已经了解了计算机编程的基本知识。我们接下来继续研究一下文档对象模型(Document Object Model-DOM)。DOM的点击关系起始于窗口对象在每个窗口对象中是一个文档对象(Document object)。我们将重点谈谈文档对象,看看如何利用它从你的用户获得各项信息,并且动态显示新的信息。

    我们已经看过文件对象的一个属性-图象数组(Images array)。在第3课中,文件中第1个图象可以通过改变其src属性被修改。

    例:

    window.document.images[0].src='some_new_picture.gif';

    该命令将把文档中的第1个图象改成一个名为some_new_picture.gif的新图象。在DOM中,图象数组中的每个图象也是对象。所以images[0].src指令象对对象那样发挥作用,它的意思就是:从Image数组中调用Image的中的对象image[0],并设定其src属性。将其翻译过来即:从该窗口中调用文档(document)属性,从该文档的图象数组中调用第1幅图象,并将其src属性该为图象some_new_picture.gif。

    Image对象还有其它很多有趣的属性,例如,你可以让JavaScript在作其它事之前检查一幅图象是否已经完全载入。但是,我们只能在以后的课程中谈到这些属性。今天,我们将谈谈反馈表单及如何在JavaScript中应用反馈表单。

    反馈表单是HTML 1.0规范的一部分。许多人对其并不很了解。很多人只以为它只能由于用户端CGI编程。其实,即使你不是CGI程序员,反馈表单也会为你提供许多功能。而JavaScript可被用来为反馈表单添加各种功能。而且无须用户端CGI的辅助。

    如果你不了解反馈表单如何工作,请学习HTML入门中的有关课程。然后在开始学习本课。

    首先,在javascript中,反馈表单也被存储在一个对象数组中。你可以通过window.document.images[0]调用图象数组中的第一幅图象,你也可以用window.document.forms[0]调用反馈表单数组中的第1项表单。你可为图象命名,也可以以类似的方式为反馈表单命名。例如,如果该反馈表单


    的编程如下:

   


       
   

    你可以用以下两种方式之一引用该表单:

    var the_form = window.document.forms[0];
    var the_same_form = window.document.first_form;

    更多的时候,你需要引用到表单内的元素,例如上例中的文字域。

    将鼠标滑过该链接看看会发式什么事情。

    Yes, and I know it.  No! 

    通过改变文字域的值就可实现这种奇妙的变换。

   


       
   

    改变文字域的链接为:

    Yes, and I know it.

    No!

    意思是说,表单调用第1个表单,并将其值设为 'Clap clap!'第2行作用相似。这同改变图象的src非常相似。只不过文字域改变的是值。

    对textareas也可以采用类似的方法改变值:

   Part 1  Part 2 

    表单编码:

   


       
   

    注意该表单有一个名字:third_form,并且文字区也有一个名字:the_textarea。

    其链接和文字域的设定方法基本相同:

    Part 1
    Part 2

    唯一的不同之处在于将一个变量赋值给textareas,而不是将字符串赋值给它。该变量在HTML首部已经做了定义。

    以下是变量的字符串赋值:

    var first_part = "Now I'm the king of the swingers\nOh, the jungle VIP\nI've reached the top and had to stop\nAnd that's what botherin' me";

    注意"\n"是换行符。如果你在一个

 并且或在一个textarea中写字,"\n" 换行符非常方便。

    除了改变表单元素的值,JavaScript还可以让你检测在表单中进行的事件。下一讲将进行介绍。



    文字域可以链接onBlur、onFocus和onChange事件。当有人点击文字域的里边时则发生onFocus事件。而如果点击文字域的外面或按了tab键时则发生onblur事件。如果有人改变了文字域内的内容然后转到文字域外部的区域时则发生onChange事件。

    试着做这些事情看下面的文字域会发生什么情况。

    以下是编制方法:文字域的编码:

   

    每一个事件处理器调用函数writeIt(),该函数已作了定义。编码如下:

   

    前几行是典型的JavaScript预定义。主体中的第1行

    var word_with_return = the_word + "\n";

    将一个变量word_with_return进行初始化为函数处理后的字符串并加上换行符"\n".。注意"\n" 是标准的计算机指令。

    下一行

    window.document.first_form.the_textarea.value += word_with_return;

    将文字区域的值设置为其原值加新变量。其作用相当于

    window.document.first_form.the_textarea.value = window.document.first_form.the_textarea.value + word_with_return;

    目前我们已经学习了文字域和文字区域(值)的属性,接下来我们学习文字域和文字区域处理所用的方法:blur()、focus()和select()。

    下面的链接显示了focus() 和select()如何工作。注意他们工作一次后可能会终止功能。

    Mouseover to focus Mouseover to select

    以下为表单和链接的编码:

   


       
   

    Mouseover to focus
    Mouseover to select

    其使用方法和调用任何对象方法的做法是一样的:object_name.method(). 该文字域的名称是window.document.form_name.text_field_name,所以用下列语句就可调用文字域的focus()方法。 

    window.document.method_form.method_text.focus();



    表单也是对象;他们有自己的方法、属性及事件处理器。其中有一项就是onSubmit。

    onSubmit的调用有以下两种情形:如果用户点击提交(Submit)按钮,或用户在文字域内按了回车键,则会触发onSubmit。

    在Netscape中,点击一个没有结果事件处理的Submit按钮通常会导致刷新原有的页面。为了避免这种情况,你可以这样做:

   


       
   

    Javascript用return false阻止浏览器刷新页面。另一个例子是阻止一个href转向赋值的URL 。例如:链接

    sohu!

    不会转向任何URL,因为你给onClick赋值为return false。

    以下是一个从用户获取信息的表单。在文字域中输入一些内容然后按回车键:

    Who does the monkey love:

    以下是表单的编码:

   


       
   

    当你点击文字域中的回车时,onSubmit处理器被调用执行函数monkeyLove(),该函数将改变文字域内的值。

    如果onsubmit处理器中没有return false语句的话,执行函数monkeyLove()会改变文字域内容,但由于同时网页内容会被刷新,从而又会将文字域的内容返回到原有的内容。为了阻止这种现象,就必须在onSubmit中加入return false.

    以下是monkeyLove() 函数的内容:

    function monkeyLove()
    {
        var who_it_is = window.document.text_entry_form.monkey_love.value;

        who_it_is = 'The monkey loves ' + who_it_is;
        window.document.text_entry_form.monkey_love.value = who_it_is;
    }



    文字域和文字区域是表单的两种元素。其它的还有复选框、单选框及下拉菜单。首先我们学习复选框。

    复选框的主要属性就是:被选中(checked)。

    如果有一个名为the_form的表单,其中一个复选框的名称为the_checkbox,你可以看到如果点击该复选框会发生什么情况:

    var is_checked = window.document.the_form.the_checkbox.checked;

    if (is_checked == true)
    {
        alert("Yup, it's checked!");
    } else {
        alert("Nope, it's not checked.");
    }

    如果复选框被选中,则复选框的属性为真(true)。真(true)是JavaScript内置的数据类型,所以你不必对true添加引号。如果复选框未被选中,则其属性为假(false),这也是一只内置数据类型。

    你还可以设定复选框的属性。以下是设置复选框属性的一个例子:

    Click to check Checkbox 1
    Click to uncheck Checkbox 1
    Click to see the value of Checkbox 1

    以下为代码:

   


        Checkbox 1
   

    Click to check Checkbox 1
    Click to uncheck Checkbox1
    Click to see the value of Checkbox 1

    注意我在链接中始终加入了return false,以防止浏览器刷新页面又回到原来的内容。复选框的事件处理器是onClick。当某人点击复选框时,onClick事件处理器即发挥作用。以下为其使用实例。

    该例子中,表单应用了onClick复选框处理器:

   


        The Light Switch
   

    当某人点击复选框时,onClick处理器被激活并执行函数switchLight(),以下为函数switchLight() 的编码(它置于网页首部中): 

    function switchLight()
    {
        var the_box = window.document.form_2.check_1;
        var the_switch = "";

        if (the_box.checked == false) {
            alert("Hey! Turn that back on!");     
            document.bgColor='black';
        } else {
            alert("Thanks!");
            document.bgColor='white';
        }
    }

    第一行: 

    var the_box = window.document.form_2.check_1;

    将复选框对象赋值给一个变量。这样可以缩小编程长度,还可以将对象作为参数传递给函数。

    下一讲我们将要讲解单选框的有关知识。



本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1268
29
C# 教程
1248
24
JavaScript引擎:比較實施 JavaScript引擎:比較實施 Apr 13, 2025 am 12:05 AM

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

JavaScript:探索網絡語言的多功能性 JavaScript:探索網絡語言的多功能性 Apr 11, 2025 am 12:01 AM

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

如何使用Next.js(前端集成)構建多租戶SaaS應用程序 如何使用Next.js(前端集成)構建多租戶SaaS應用程序 Apr 11, 2025 am 08:22 AM

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

使用Next.js(後端集成)構建多租戶SaaS應用程序 使用Next.js(後端集成)構建多租戶SaaS應用程序 Apr 11, 2025 am 08:23 AM

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

從C/C到JavaScript:所有工作方式 從C/C到JavaScript:所有工作方式 Apr 14, 2025 am 12:05 AM

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

JavaScript和Web:核心功能和用例 JavaScript和Web:核心功能和用例 Apr 18, 2025 am 12:19 AM

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

JavaScript在行動中:現實世界中的示例和項目 JavaScript在行動中:現實世界中的示例和項目 Apr 19, 2025 am 12:13 AM

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

See all articles