Time of Update: 2017-01-19
前言: 在javascript裡面動態建立標準dom對象一般使用: var obj = document.createElement('div'); 然後再給obj設定一些屬性。 但是,在實際使用過程中,有些人可能會想,要是能這樣建立標準的dom對象就好了 虛擬碼:var obj=strToDom('<div id="div_1" class="div1">Hello World!</div>');
Time of Update: 2017-01-19
模式類型:原廠模式 模式說明:常用模式之一,用來動態建立對象 適用範圍:在運行期間需要在一系列可互換的子類中進行選擇的類 注意事項:介面的實現,從而使不同子類可以被同等的對待,恰當的使用原廠模式,但不要拘泥與形式,理解本質。 關鍵點:以 函數/類/子類 構建的選取器 本質:函數作為選取器的使用 一般使用形式: 作為獨立的選取器存在: 複製代碼 代碼如下: function FactoryMode(index){ switch(index){ case "index1" : return new
Time of Update: 2017-01-19
於是有了這個: 無標題文檔 姓名progresstudy 年齡22 職業學生 [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]這個是用類似Java的方式寫的,有私人方法,私人屬性,公有方法(以前最喜歡用的方法)。 也就是這種類似的形式: 複製代碼 代碼如下: var Deditor=(function(){ //private method //private prototype return function(){ //public method }
Time of Update: 2017-01-19
測試如下: 數群組類型測試 Object類型測試 執行個體化函數測試 函數參數按地址傳遞測試 var a=b=[1,2]; a.push(3); alert(a.length+' : '+b.length); 關於對節點對象操作產生的影響:由於是函數是按值傳遞,所以在插入節點時,引用的是節點本身,而不是它的一個複製,所以節點被轉移了如: 無標題文檔 div1 div2 [Ctrl+A 全選
Time of Update: 2017-01-19
//為建構函式原型添加方法 Function.method=function(name,func){ this.prototype.name=func; } Number.method("integer",function(){ return Math[this < 0 ? 'ceil':'floor'](this); }); (-10/3).integer();//-3 String.method("trim",function(){ return this.replace(/^
Time of Update: 2017-01-19
迴歸原始,當樣式切換後,把控制權還給頁面,即table.js僅控制轉場樣式和記錄操作: 複製代碼 代碼如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta
Time of Update: 2017-01-19
樣式表有三種方式 內嵌樣式(inline Style) :是寫在Tag裡面的,內嵌樣式只對所有的Tag有效。 內部樣式(internal Style Sheet):是寫在HTML的<head></head>裡面的,內部樣式只對所在的網頁有效。 外部樣式表(External Style
Time of Update: 2017-01-19
第一步:引用table.js 複製代碼 代碼如下:<script type="text/javascript" src="table.js"> </script> 第二步:定義選中的樣式,比如“active”,應用選項卡的塊的ID,比如“sidebar”,預設被選中的序號,比如第一個“0”; 第三步:調用函數: 複製代碼 代碼如下:<script type="text/javascript"> //參數分別為:預設選擇項 應用塊的id 選中的樣式
Time of Update: 2017-01-19
其中getElementsByName(name)方法是擷取頁面中所有具有name屬性的元素,但這個方法在IE與標準瀏覽器中所取到的內容不一樣。在IE中getElementsByName(name)方法所取到的元素是其本身就內建有name屬性也就是form表單中所列出的所有元素(這些元素本身就內建有name屬性);標準瀏覽器中getElementsByName(name)方法所取到的元素是具有name屬性的元素(本身就帶有此屬性+人為添加的此屬性)。所以如果在IE瀏覽器中用此方法來擷取頁面中所有
Time of Update: 2017-01-19
複製代碼 代碼如下: var Viewport={ top : function(){ return window.pageYOffset || document.documentElement && document.documentElement.scrollTop || document.body.scrollTop; }, height : function(){ return window.innerHeight || document.documentElement &&
Time of Update: 2017-01-19
代碼如下: 複製代碼 代碼如下: function g(n){ var n = n.toString(2); var count = 0; for(var i=0;i<n.length;i++) { if(n[i] == "1") count++; } return count; } 覺得這樣寫很麻煩,突然想到是不是可以利用js的split方法來實現計算1的個數,split的參數為正則\0*\,分離字串中的1。代碼如下: 複製代碼 代碼如下: function f(n){ return
Time of Update: 2017-01-19
其實還可以這樣操作: 複製代碼 代碼如下: var Room = [ { ID: 'bot', name: 'test', sex: true }, { ID: 2, name: 'test8', sex: true }, { ID: 3, name: 'test5', sex: false }, { ID: 4, name: 'test2', sex: true }]; "update Room set name = 'man' where sex=true".executeSQL();
Time of Update: 2017-01-19
比如對javascript數組的排序 還有對數組資料的刪選以及分組 所以,後來興緻以上來。 一發不可收拾。 寫了一個能在javascript中應用的 SQL 庫 後來又想,怎麼不能用javascript直接連接資料庫呢? 又做了一個javascript直連Sql資料的類庫 後來,又想到其實還可以用SQL語句來操作HTML DOM模型 再再再後來,又看到了HTML5中對web DB的實現 所以對webDB,就是chrome和safari中的sqlite的封裝 於是乎就有了:
Time of Update: 2017-01-19
因為是html格式的內容,直接截取內容的前多少字元顯然不合適了。而如果直接去掉所有html格式然後再截取又無法達到想要的效果,再網上搜了一通之後,寫下如下代碼應該可以滿足基本的要求了。(js寫的,因為容易調試) 複製代碼 代碼如下: var br = {}; br.spTags = ["img","br","hr"];/*不需要成對出現的標記*/ br.contain = function(arr,it){ for(var i=0,len=arr.length;i<len;i++){
Time of Update: 2017-01-19
JavaScript中的代碼只體現為一種形式,就是function。 注意:以上單詞都是小寫,不要和Number, String, Object, Function等JavaScript內建函數混淆,JavaScript語言是區分大小寫。typeof(null)返回object,但null並非object。 JavaScript的代碼就只有function一種形式,function就是函數的類型。函數的寫法有“定義式”和“變數式”。
Time of Update: 2017-01-19
今天重點講下 如何給Array對象擴充 1、直接在Array.prototype 上擴充 2、用自己方法對數組對象進行擴充 直接在Array.prototype上擴充,不能直接對dom對象使用(如:document.getElementsByTagName('div')得到的nodeList); 對有潔癖的同學而言 也破了原始生態環境的 : ) 先來看下 yui運算元組的一些方法,這裡我對源碼簡單剝離並改動了下 複製代碼 代碼如下: (function(){ var YArray;
Time of Update: 2017-01-19
複製代碼 代碼如下: function fn() { for(var i = 0;i < arguments.length;i++){ alert("第"+(i+1)+"個參數的值:"+arguments[i]); } } var str = '<div id="{wo}" >{ni}</div>'; str.replace(/\{([a-z]+)\}/ig, fn); 根據多次測試由輸出結果可以得出fn中:
Time of Update: 2017-01-19
IE only的監聽代碼 [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]Ascii 代碼錶 Ascii 0 {Nulo, Sem Som} Ascii 1 Ascii 2 Ascii 3 Ascii 4 Ascii 5 Ascii 6 Ascii 7 Ascii 8 {BackSpace} Ascii 9 {Tab} Ascii 10 Ascii 11 Ascii 12 Ascii 13 {Enter} Ascii 14 Ascii 15 Ascii 16 {Shift}
Time of Update: 2017-01-19
函數: 複製代碼 代碼如下: function throttle(fn,ms) { var last = (new Date()).getTime(); return (function() { var now = (new Date()).getTime(); if (now - last > ms) { last = now; fn.apply(this, arguments); } }); } 參數 fn : 傳入的函數/方法 參數
Time of Update: 2017-01-19
這個功能需要寫一點代碼來實現。下面的函數可以得到一個變數的類型,調用時傳遞一個變數進去,會返回用字串形式描述的變數類型。複製代碼 代碼如下: //得到x的類型,傳回型別名稱 function getType(x) { //如果x為null,則返回null if (x == null) return "null"; var t = typeof x; //如果x為簡單類型,則傳回型別名稱 if (t.toLocaleLowerCase() != "object") return t;