您的位置:首页 > Web前端 > JavaScript

Javascript一些使用的小结

2011-09-29 16:52 267 查看
1、对于一个定义的js函数,如果调用时参数不够是未指定的参数会为undefined,而调用时参数多于函数的个数时,会忽略多出的参数如:

定义一个函数:

function m(p1,p2,p3){
	alert(p1+"---"+p2+"-----"+p3) ;
}
以下面两种方式调用时:

<input type="button" value="提交1" onclick="m(1,3)">
<input type="button" value="提交2" onclick="m(1,2,3,4,5)">


会返回:

1---3----undefined

1---2----3

2、form.submit is not a function

在使用js动态创建的表单中使用

var form = document.getElementById("attForm" + i);
        form.submit();
结果总是报错,网上有的是有表单中有name=submit找了半天也没这个东西,后来又找啊找,发现form写成from了,



但报的错跟这个没啥关系,这是坑爹啊。

3、对于iframe中嵌套iframe最子层js要调用最顶级父窗口的js函数时,则采用多个parent叠加的方式访问,如

window.parent.parent.addTab("项目申报详细列表", 'eduadmin_declare_item_list.jsp?order=' + order, 'icon add-icon');


4、eval函数,通过字符串函数名来执行一个函数

function f1 (name){		
		// 1、eval用法(Java->Method->invoke)
		eval("f2()") ;
	}
function f2(){
		alert("function2") ;
	}


5、delete关键字,在给对象添加一个属性后删除这个属性

function f1 (name){
		
		var o = {} ;
		o.name = "zhangsan" ;
		alert(o.name) ;(zhangsan)
		
		delete o.name ;
		
		alert(o.name) ;(undefined)
	}


6、jQuery和原生javascript中都有click方法,但这两个方法在触发和取一个绑定onclick事件的checkbox值时有区别,区别在于jQuery中click()方法触发click事件时取得的是当前checkbox的值,原生Javascript中click方法取得的是当前值改变后的值下面以一个例子来模拟一下。

<script type="text/javascript" src="jslib/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
	$(function(){
		$("#check").bind("click",function(){
			alert($(this).attr("checked")) ;
		}) ;
	}) ;
	
	// jQuery中click方法与直接使用鼠标点击checkbox框效果相反
	function jQueryClick(){
		$("#check").click() ;
	}
	// js中原生click方法与直接使用鼠标点击checkbox框效果相同
	function jSClick(){
		document.getElementById("check").click() ;
	}
</script>
</head>
<body>
	<input type="checkbox" id="check"/>check
	<br />
	<br />
	<br />
	<br />
	<br />
	<input type="button" value="jQueryclick" onclick="jQueryClick()"/>
	<input type="button" value="jSClick" onclick="jSClick()"/>
</body>


当用鼠标直接点击checkbox框时



使用jQuery.click()



使用原生js.click()



7、转换普通文本为xml

function createXml(str){
                if (document.all) {
                    var xmlDom = new ActiveXObject("Microsoft.XMLDOM");
                    xmlDom.loadXML(str);
                    return xmlDom;
                }
                else 
                    return new DOMParser().parseFromString(str, "text/xml");
            }


8、js中使用length属性时中文也是作为一个字符,下面工具函数是把中文作为两个字符

//截取长度  
        function getString(str, len){
            var length = len || 6;
            if (str == null) {
                return 0;
            }
            var l = str.length;
            var blen = 0;
            var i = 0;
            for (i = 0; i < l; i++) {
                if ((str.charCodeAt(i) & 65280) != 0) {
                    blen++;
                    if (blen > length) 
                        break;
                }
                blen++;
                if (blen > length) 
                    break;
            }
            var rStr = str.substring(0, i);
            if (i < l) {
                rStr += "...";
            }
            return rStr;
        }


// 带有中文的字符串长度
        function gblen(str){
            var l = str.length;
            var blen = 0;
            for (i = 0; i < l; i++) {
                if ((str.charCodeAt(i) & 65280) != 0) {
                    blen++;
                }
                blen++;
            }
            return blen;
        }


9、js读取xml,使用ajax的方式避免浏览器的差异。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: