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;    
 };
相关文章
相关标签/搜索