Time of Update: 2018-12-08
先看javascript的普通函數用法 複製代碼 代碼如下:function sum(a,b){ var c = 10; function add(){ c++; } add(); return a + b + c; } var d = sum(4,5); alert(d) // 20 可以看出,外部要和函數sum進行互動,只能通過調用和傳回值形式,無法訪問裡面的參數c和內建函式add()。這對於函數來說屬於正常邏輯。 接下來看javascript的類用法 複製代碼 代碼如下:function
Time of Update: 2018-12-08
如果你有編程基礎,學習Javascript是一件很容易的事情,如果你沒有編程基礎,也不要擔心,我們會為你解釋每一行代碼。 複製代碼 代碼如下:<html> <body> <script type=”text/javascript”> document.write(“This is my first javascript”); </script> </body> </html>
Time of Update: 2018-12-08
錯誤模式:語法錯誤警告 複製代碼 代碼如下:function(){ // insert code here }(); 模式一:函數字面量 (Function Literal) 先聲明函數對象,然後執行。 複製代碼 代碼如下:(function(){ // insert code here })(); 模式二:優先運算式 (Prior Expression) 由於 JavaScript 按照從內到外的順序執行運算式,因此使用括弧來強制執行已聲明的函數。 複製代碼 代碼如下:(function(){
Time of Update: 2018-12-08
回顧一下,IE會把標籤內前面的一些空白kill掉,還會把它裡面標籤統統大寫,會顯示動態添加的屬性,在某些元素中,它還是唯讀。這個由IE發明的東西,最後被爆如此多缺陷,真是令人心寒。不過innerHTML還有一地雷,存在於最標準的Firefox中,看下面代碼: 複製代碼 代碼如下:var newTable = document.createElement('table'); document.body.appendChild(newTable); var newTr =
Time of Update: 2018-12-08
原理基本是這樣,如果傳入的是字串,那麼讓它們變成一個元素節點,不過這元素節點也可以有許多層,在最內層把要包裹的元素放進。把字串變成元素節點的方法有如下幾個。1,createElement,IE可以連元素屬性也一起建立,但只能建立一層。2,innerHTML,不過需要對原來的字串進行處理,IE與FF都有許多意想不到的預設行為,可以為你多加一點東西或少加一點東西。3,createContextualFragment,由於Opera的行為有點怪異,需要選中修改元素的位置。經日本人的測試,它轉換字串成節
Time of Update: 2018-12-08
getElementByTagNames(注意是複數的names)會獲得一些tag的元素,然後按照他們的順序儲存在一個數組中。這非常的有用,比如在上一章的TOCScript中,就需要獲得整個文章裡面的所有的H3和H4。 我非常希望在node原型中加入這個功能,但是在IE和Safari裡面不行。所以只能把他當做一個普通函數。 使用 getElementByTagNames有兩個參數: 1、一個用逗號分隔的tag名稱字串。
Time of Update: 2018-12-08
1.大家在實際工作中,會寫各式各樣的指派陳述式。 比如最常用的obj.style.display = "none"; 如果這樣的指派陳述式一多,obj.style一排下來都要看暈了 下面我的base.js中的extend函數可以允許用json格式賦值屬性甚至是函數控制代碼 複製代碼 代碼如下:/** * 擴充函數 * @param target 需要擴充的對象 * @param params 要往target裡放的屬性和方法 */ function extend(target, params)
Time of Update: 2018-12-08
如果你也想這麼做,那麼你還需要我的getElementByTagNames()函數。複製代碼 代碼如下:function createTOC() { var y = document.createElement('div'); y.id = 'innertoc'; var a = y.appendChild(document.createElement('span')); a.onclick = showhideTOC; a.id =
Time of Update: 2018-12-08
例子 這個頁面就是個例子。點擊一個段落,編輯,然後點Ready。你的修改就會呈現。 問題 遇到的第一個問題是:我想用文字框作為編輯地區。一開始我卻把內容放不進文字框去。讀者發現Mozilla的一個警告說是只有在文字框放置到文檔之後才能設定它的value。 另外,在Mozilla下面內容封裝的不是很好。我試了好幾種wrap參數,但是結果都不是很好。
Time of Update: 2018-12-08
文章目錄 自從建立一個範圍 雖然我們會講解用程式建立範圍對象,但是我們把精力主要集中在如何將使用者的選取範圍轉換成為W3C
Time of Update: 2018-12-08
jQuery中形如$("#txtName").addClass("err").css("font-size","12px").select().focus();的方式讓人不得不為之著迷。其實現機制就是鏈式調用。鏈式調用就是調用對象的方法後返回到該對象,嚴格來講它並不屬於文法,而只是一種文法技巧,js令人著迷的一點就是這裡。 沒有傳回值的方法屬於賦值器方法,顯然它很容易實現鏈式調用,前提是正確理解this指標的用法。 複製代碼 代碼如下:function W(){ this.name="Wang
Time of Update: 2018-12-08
文章目錄 1. 它以 Java 命名,但並不是 Java2. Null 是個對象?3. NaN !== NaN4. 全域變數5. 那些統統被探測為 Mozilla User-Agent 的瀏覽器6. 不一致的函數範圍7. 位操作符8. 太多的空實值型別9. 算術問題10. 莫名其妙的代碼錯誤 1. 它以 Java 命名,但並不是 Java它最初叫 Mocha, 接著改名為 LiveScript,最後才確定命名為
Time of Update: 2018-12-08
在我看來,警告框只用在瀏覽器不支援其他顯示錯誤資訊的辦法的時候。W3C建議我們在表單項的附近顯示錯誤資訊。這是一種很好的辦法,所以我們只在瀏覽器不支援這種進階的辦法的時候才使用警告對話方塊。 例子 試試下面的例子。每一項都是必須的。另外我會堅持email項是否有@符號。如果沒有也會提示錯誤資訊。 複製代碼 代碼如下:var W3CDOM = (document.getElementsByTagName && document.createElement);
Time of Update: 2018-12-08
1.如何擷取表單<select>域的選擇部分的文本? <form name="a"> <select name="a" size="1" onchange="_sel(this)"> <option value="a">1</option> <option value="b">2</option> <option value="c">3</option> </select> &
Time of Update: 2018-12-08
想法 假設你有一個線上的CD評級工具。你希望使用者查看他們喜歡的所有CD。但是你怎麼知道使用者平均會查看多少張呢?你在這個頁面上需要添加多少欄位呢? 在W3CDOM出現之前這確實是一個問題。假設你放置了7張CD。但是使用者很可能只想查看一張,太多可能會嚇著使用者,而有些使用者想查看自己的所有CD,這樣就不得不反覆提交很多次。這確實很煩人。 只有使用W3C DOM才能讓使用者決定產生多少個欄位。這個效果和之前的大不相同。 例子
Time of Update: 2018-12-08
表單一實例 這是一個表單的實力。這裡有一個小問題:因為我的伺服器現在不支援,所以表單不能提交。我會列印出你的輸入,然後返回一個false,這樣表單就沒有被提交。 onSubmit的代碼做了兩件事情:檢查你是否在四個文字框裡面都填寫了資料,然後把所有的元素都串連起來列印在下面的文本地區中。 原文中有執行個體,需要童鞋請移步,我就不搬過來了。 檢測文本地區 這段代碼會檢測使用者是否在文字框內輸入了內容。他會忽略複選框和單選框,但是會總提醒使用者選擇select
Time of Update: 2018-12-08
轉化為Boolean類型 所有JavaScript中的值都能隱式的轉化為Boolean類型,比如: 0 == false; // true 1 == true; // true '' == false // true null == false // true但是這些值都不是Boolean類型。因此當我們使用三個等號進行比較時: 0 === false; // false 1 === true; // false '' === false // false
Time of Update: 2018-12-08
因為每一個表單的檢測項都不同,所以我也不能給你一個萬能的代碼。你需要用我在這一章介紹的這些元素構建自己的檢測函數。我在後面一張還有一個例子,你也可以參考。在這一章我會首先討論一下用JavaScript來檢測表單的局限性,然後會解釋一下提交時間處理常式,然後是表單本身的一些方法和屬性。最後就是如何訪問表單元素。這裡還有一篇Jeff Howden的介紹表單的使用錯誤和解決辦法。Forms & JavaScript Living Together in Harmony局限性
Time of Update: 2018-12-08
ok,不廢話了,實現一個javascript的Timer吧 比起as3的Timer類,功能上略有改動 timer2.src.js 複製代碼 代碼如下:/** * Timer 模型 * * @author rainsilence * @version 2.0 */ (function() { /** * TimerEvent constructor 構造器 * * @param type 事件類型 * @param bubbles 是否毛票 * @param cancelable 是否可取消 */
Time of Update: 2018-12-08
事件本身相當直觀,常用的有: