javascript&jQuery知識點積累


JS調用iframe父窗口元素和子窗口元素的方法
javascript

父窗口調用子窗口 java

window.frames["iframe的id"].document.getElementById("iframe中的id"?)正則表達式

子窗口調用父窗口 api

parent.document.getElementById("父頁面中的Id")數組

子窗口調用父窗口的方法:函數

window.parent.closedivtree();工具

問題:$.fn與$.fn.extend的區別
this

$.fn給jQuery對象添加方法,例如:$.fn.abc是在$.fn命名空間下定義一個abc的方法。 spa

$.fn.extend爲擴展jQuery類自己.爲類添加新的方法。 code

問題:$.each 和$(selector).each()的區別

$.each用於遍歷對象和數組,是通用的遍歷方法。其數字簽名: jQuery.each(object,[callback])

  • object:須要遍歷的對象或數組;

  • callback:回調函數。它擁有兩個參數:第一個爲對象的成員或數組的索引,第二個爲對應變量或內容。若是須要退出 each 循環可以使回調函數返回 false,其它返回值將被忽略。

使用例子參考:jQuery api> 工具 > $.each(object,[callback])

$.(selector).each()的做用是以每個匹配的元素做爲上下文來執行一個函數。

意味着,每次執行傳遞進來的函數時,函數中的this關鍵字都指向一個不一樣的DOM元素(每次都是一個不一樣的匹配元素)。並且,在每次執行函數時,都會給函數傳遞一個表示做爲執行環境的元素在匹配的元素集合中所處位置的數字值做爲參數(從零開始的整型)。 返回 'false' 將中止循環 (就像在普通的循環中使用 'break')。返回 'true' 跳至下一個循環(就像在普通的循環中使用'continue')。

問題:javascript判斷字符串是否爲空

        不少狀況下,都是用length來直接判斷字符串是否爲空,以下

var string = "";
if(string.length == 0){
   alert("不能爲空");
}

       但若是用戶輸入的是空格,製表符,換頁符呢?這樣的話,也是不爲空的,可是這樣的數據就不是咱們想要的吧。

 var string = "";
 if(string.replace(/(^\s*)|(\s*$)/g,"").length == 0){
     alert("不能爲空");
 }

說明:replace(/(^\s*)|(\s*$)/g, "")

^表示字符串必須之後面的規則開頭, 在這裏就是說字符串必須以\s*開頭.

\s 是空格的意思, * 表示有0個或多個

\s* 就是有0個或多個空格

(^\s*) 表示的就是以0個空格或者多個空格開頭

| 表示或的意思, 也就是知足| 左邊的也成立, 知足 | 右面的也成立.

\s*前面說過了

$ 的意思是字符串必須之前面的規則結尾

(\s*$) 的意思就是, 以0個空格或者多個空格結尾

/.../g  是正則表達式的屬性, 表示全文匹配, 而不是找到一個就中止

因此這個正則表達式替換的就是前導空格和後導空格

由於有前導空格, 就說明以0個或多個空格開頭, 知足正則表達式中 | 前面的條件: (^\s*)

而若是有後導空格, 就說明以0個或多個空格結尾, 知足正則表達式中 | 後面的條件: (\s*$)

//打印數組
	function print_array(arr) {
		for ( var key in arr) {
			if (typeof (arr[key]) == 'array' || typeof (arr[key]) == 'object') {//遞歸調用  
				print_array(arr[key]);
			} else {
				alert(key + ' = ' + arr[key]);
			}
		}
	}

 $.fn.serializeObject = function()    
 {    
    var o = {};    
    var a = this.serializeArray();    
    $.each(a, function() {    
        if (o[this.name]) {    
            if (!o[this.name].push) {    
                o[this.name] = [o[this.name]];    
            }    
            o[this.name].push(this.value || '');    
        } else {    
            o[this.name] = this.value || '';    
        }    
    });    
    return o;    
 };
相關文章
相關標籤/搜索