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的方式避免浏览器的差异。
本文深入探讨了JavaScript函数的调用规则,表单提交问题,iframe嵌套与跨级访问,eval函数用法,delete关键字操作,jQuery与原生JS点击事件区别,普通文本转XML方法,中文字符串长度计算,XML读取与AJAX应用,以及各关键技术领域的概述。
1062

被折叠的 条评论
为什么被折叠?



