Time of Update: 2018-12-08
剛和同事討論了一個很有趣的問題,有個idea,需要記錄使用者在頁面選中的內容,在ff和ie9下有w3c的dom2級事件createRange,這裡不再累贅。主要問題是在IE6,7,8隻能通過createTextRange選中熱區。假如我們知道使用者選擇開始元素和位移量,以及結束元素以及位移量,那麼我們可以用下面的例子把使用者選擇的內容用js給標記起來 複製代碼 代碼如下:<head> <script> function mark() { var b=
Time of Update: 2018-12-08
本人不怎麼會寫JS,但是會搜尋,這裡找到了些別人寫好的東西: 複製代碼 代碼如下:select(document, tanchu); /*=select[[ * * 跨瀏覽器選中文字事件 * @param * object o 響應選中事件的DOM對象,required * function fn(sText,target,mouseP)選中文字非空時的回呼函數,required * |-@param * |-sText 選中的文字內容 * |-target 觸發mouseup事件的元素 * |
Time of Update: 2018-12-08
上回說到《JavaScript 原型繼承之基礎機制》,這一篇將具體說說建構函式的繼承。 從一個簡單的樣本開始,建立描述人類的 People 建構函式: 複製代碼 代碼如下:function People(){ this.race = '愚蠢的人類'; } 然後,建立描述黃種人的 Yellow 建構函式: 複製代碼 代碼如下:function Yellow(name, skin){ this.name = name; this.skin = skin; } 要使得黃種人 Yellow 能繼承人類
Time of Update: 2018-12-08
這一語言功能的本質依賴於 JavaScript 特有的原型鏈(prototype chain)模式。 所以嚴格意義上說,JavaScript 是基於原型的物件導向語言。也就是說,每個執行個體對象都具有一個原型。對象從該原型中繼承屬性和方法。 1、建構函式 利用建構函式,可以簡單地建立對象。建構函式內的 this 關鍵字指向執行個體對象本身: 複製代碼 代碼如下:function People(name){ this.name = name; } 使用 new 運算子和建構函式建立執行個體對象:
Time of Update: 2018-12-08
為指定元素添加 CSS 類:通過添加 CSS 類改變元素的外觀和感覺,非常乾淨的方法,而不是添加內聯樣式。使用 jQuery,這很容易做到:$('#myelement').addClass('myclass');從指定元素移除 CSS 類:你可能覺得添加 CSS 類的操作已經灰常牛逼,但我們還需要知道如何移除不需要的 CSS 類。下面的代碼能做到這一點:$('#myelement').removeClass('myclass');檢測指定元素是否具有某個 CSS
Time of Update: 2018-12-08
比如 複製代碼 代碼如下:a * b + c; ,先算乘方,再算乘除,最後算加減 ,有括弧,先算括弧裡面的,同一級運算按照從左至右的順序依次進行 這一點所有的程式設計語言都採取數學中數位計算順序。當然程式設計語言中還有一些不同於數學中的運算子。那運算數的求值順序是如何的呢? 如下 複製代碼 代碼如下:// 求 a 和 b的和 sum = a + b; ,從記憶體中取a的值 ,從記憶體中取b的值 ,進行相加運算
Time of Update: 2018-12-08
複製代碼 代碼如下:/* * 包含jquery-1.3.2.min.js */ document.write("<script language='javascript' src='js/jquery-1.3.2.min.js'></script>"); /* * 公用參數 */ var hostUrl='http://'+window.location.host; //擷取網站主機頭 /* * 水平置中left值 */ function HorCenter(x){
Time of Update: 2018-12-08
複製代碼 代碼如下:(function() { var urlToObject = function(url) { var urlObject = {}; if (/\?/.test(url)) { var urlString = url.substring(url.indexOf("?")+1); var urlArray = urlString.split("&"); for (var i=0, len=urlArray.length; i<len; i++) { var
Time of Update: 2018-12-08
複製代碼 代碼如下:console.log('----1----') console.log('12' + '34')//'1234' console.log('12' + 34 )//'1234' console.log(12 + '34')//'1234' console.log(12 + 34 )//46 console.log('----2----') console.log(+'12' + '34')//'1234' console.log(+'12' + 34 )//46
Time of Update: 2018-12-08
一.js物件導向的一種實現 複製代碼 代碼如下: <script type="text/javascript"> function Person() { this.name = "張三"; this.age = 0; var nickName = "小三"; //類似私人變數,函數中的局部變數在函數執行完後自動銷毀. this.SayHi = function () { alert("我的名字是" + this.name + " ,大家都叫我" + nickName + "
Time of Update: 2018-12-08
——這就要從JAVASCRIPT的解譯器開始說起了:每當JAVASCRIPT解譯器開始執行一個函數的時候,都會建立一個執行環境,並且還會產生一個和這個函數息息相關的變數對象,在這個執行環境中定義的一切變數或者函數都會被他儲存起來。但是他就像有關部門,可能和你息息相關,但是你永遠找不到他的身影,你是無法調用這個對象的,但是JAVASCRIPT解析器處理資料時便會調用到它。
Time of Update: 2018-12-08
構成 這是一個十分常見的微博列表頁面,類似於新浪微博。上周末,在心無旁騖情況下,一共用了5個對象,產出400行代碼,實踐出一種程式碼群組織模式。 使任務輕鬆完成的代碼有4個方面的要素組成: 要素組成模型Reply、Forward視圖CommentEditor、ReplyList、ForwardList模板jQuery.tmpl非同步任務jQuery.Deferred分部介紹 模型 模型只與資料有關,它能夠產生、過濾、儲存、驗證資料,並且僅此而已。
Time of Update: 2018-12-08
下邊是我自己寫的一個類,類中有欄位、方法 複製代碼 代碼如下://建構函式 function Person(name,sex,age) { this.name = name; this.sex = sex; this.age = age; }; Person.prototype.getName = function () { return this.name; }; Person.prototype.getSex=function(){ return this.sex; };
Time of Update: 2018-12-08
昨天在用JS對前台浮點數進行合算時發現: 0.05+1.08=1.1300000000000001 上網查一查的確存在這種Bug,除了位元上控制之外也沒什麼也好的方法(希望高手能提出 其它思路)。 於是自己編寫一個控制小數位元的JS方法,解決開發燃眉之急 複製代碼 代碼如下://小數位元控制,可以四捨五入 function Fractional(n) { //小數保留位元 var bit = 2; //加上小數點後要擴充1位 bit++; //數字轉為字串 n = n.toString(
Time of Update: 2018-12-08
插入排序 插入排序是這樣實現的: 首先建立一個空列表,用於儲存已排序的有序數列(我們稱之為"有序列表")。 從原數列中取出一個數,將其插入"有序列表"中,使其仍舊保持有序狀態。 重複2號步驟,直至原數列為空白。 插入排序的平均時間複雜度為平方級的,效率不高,但是容易實現。它藉助了"逐步擴大成果"的思想,使有序列表的長度逐漸增加,直至其長度等於原列表的長度。 (引自百度百科) javascript代碼 複製代碼 代碼如下:<script
Time of Update: 2018-12-08
去某公司(公司名不說了,人這套題說不定還要用)面試,現場30分鐘做了一套題,其中有一道是這樣的: 要求用js寫一個函數,對傳入的形如下網址字串,返回對應的對象。 如: 若傳入字串a='?name=zhiyelee&blog=www.tsnrose.com'; 則返回 b={‘name':'zhiyelee','blog':'www.tsnrose.com'} 當時由於時間比較短,實現的有些問題,回來後想了一下,總結如下:
Time of Update: 2018-12-08
複製代碼 代碼如下:題目:要求寫一個函數,去掉給定數組中的重複值。 如: 傳入數組 a = [0, 8, 5, 4, 78, 8, 90, 4, 'a', 'b', 'a']; 要求返回:[0,4,5,8,78,90,a,b] 對於這個題目,在面試之後也想了好多次,不過一直沒能想出一個時間複雜度較低的方法。昨天下午在宿舍看《JavaScript語言精粹》看到一個書中的一段代碼有所觸發,於是在jsfiddle上測試了,成功。代碼如下(完整版參見jsfiddle) 複製代碼 代碼如下:var
Time of Update: 2018-12-08
複製代碼 代碼如下:function isNum()//判斷小鍵盤輸入數字 { var str=(window.event.keyCode); if(str>105 || str<96 ) { if (str!=8 ) { window.event.returnValue=false; return; } } } function isNumUp()//判斷主鍵盤輸入數字 { var str=(window.event.keyCode); if(str>57 ||
Time of Update: 2018-12-08
複製代碼 代碼如下:$(function () { pageJs.urls = [ '/', 'Index', ]; pageJs.run(); }); //the functions include html elements. Ajax function also can be put here. var Common = { init: function () { alert('Common'); } }; //url--pages var Index = { init:
Time of Update: 2018-12-08
例子1: 複製代碼 代碼如下:var obj={0:'a',1:'b'} alert(obj.length); //undefined var arr=['a','b'] alert(arr.length); // 2 從上面的例子看,類數組對象中的length屬性並不和它儲存的資料數量直接掛鈎,無論是索引屬性(0,1)還是length屬性都作為對象的普通屬性存在,它們之間並沒有任何關係,js引擎並不會根據儲存資料的數量來自動計算類數組對象的長度。