文档章节

js

whatwhowhy
 whatwhowhy
发布于 2015/08/14 16:07
字数 890
阅读 22
收藏 0

一 、setTimeout传参数

1、采用字符串
setTimeout("start(" + argu + ")",1000)
此方法用于传递字符串,无法传递对象
2、匿名函数
setTimeout(function(){ start(argu)},1000); 调用start函数并传arg参数
字符串、对象都行
3、在有些情况下需在循环中使用,如:
window.onload=function(){
       var a=[{id:1},{id:2},{id:3},{id:4}];
       for(var i=0;i<3;i++){
           setTimeout(function(){start(a[i])},1000);
       }
}
function start(obj){ alert(obj.id);}
输出的结果都为 4。因为在一个函数体中,a和i相对于匿名函数是全局的,循环执行完后i=3 ,都执行start(a[3]),所以输出结果相同。
这种情况怎么解决呢,只需把setTimeout封装到一个函数中即可
window.onload=function(){
       var a=[{id:1},{id:2},{id:3},{id:4}];
       for(var i=0;i<3;i++){
            set(a[i]);
       }
}
function set(obj){   setTimeout(function(){start(obj)},1000);   }
obj和匿名函数在同一作用域,所以在匿名函数中可以直接访问obj,而且每次执行setTimeout时都会产生新的匿名函数体和作用域,所以定时执行匿名函数时调用start并传值就不会出问题了。(此为个人的理解,不一定正确)
function start(obj){ alert(obj.id);}
在网上看到有人封装了一个函数,也可实现该功能
var util={
setTimeout:function(fun, delay) {
    if(typeof fun == 'function'){
      var argu = Array.prototype.slice.call(arguments,2);
       var f = (function(){
      fun.apply(null, argu);
      }
    );
     return window.setTimeout(f, delay);
   }
   return window.setTimeout(fun,delay);
}
}
window.onload=function(){
       var a=[{id:1},{id:2},{id:3},{id:4}];
       for(var i=0;i<3;i++){
             util.setTimeout(start,1000,a[i]);
       }
}

二 、go和back

go 返回后数据都在  back返回后数据全清

三、  readonly   getElementById(id)   id  不能加#

document.getElementById("code").removeAttribute("readonly");

四、  jquery修改a标签的href链接和文字

<a href="http://keleyi.com" id="home_keleyi_com">柯乐义</a>

修改a标签的href链接:
$('#home_keleyi_com').attr('href','http://keleyi.com'); 

五、js判断undefined类型

if (typeof(reValue) == "undefined") { 

if (typeof(reValue) == "undefined") { 
   alert("undefined"); 
}  

typeof 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined"

6.  js时间格式化

var  date =  new  Date();

var result = date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate()+' '+date.getHours()+':'+date.getMinutes()+':'+date.getSeconds();

类型null就==null 
值null就=="null"
值空就==""
这有啥纠结的

<script type="text/javascript" src="<%=path%>/frontJs/passport/myPassport.js?version=20150520"></script>引用js或者css的时候加入?version版本号,清除浏览器缓存

 客户端会缓存css或js文件,改变版本号,客户端浏览器就会重新下载新的js或css文件

七、单选按钮radio点击已选中的,取消选中

function setSelectUserNo(radioObj){  
          
        var radioCheck= $(radioObj).val();  
        if("1"==radioCheck){  
            $(radioObj).attr("checked",false);  
            $(radioObj).val("0");  
              
        }else{   
            $(radioObj).val("1");  
              
        }  
    }  

<input type="radio" name="#var.check"  value='0' onclick="setSelectUserNo(this);"     />这个方法是利用value的值进行判断处理,当value==1的时候代表已经选中,当value==0的时候代表未选中,并且一定要先判断在处理, 改变的的时候重置一下值

JavaScript字符串中删除指定字符

想要去除字符串中的所有, : ; = [ ]
str.replace(/[,:;=\[\]]/g,'')

8.无刷新页面,var 参数,无法重置参数值

例:
function monthTongJi(){
 		var year=$("#tongji_year").val();
		var month=$("#tongji_month").val();
         alertPrompt(month);//为当前值
		if(year!=''&year!=undefined){
			if(month!=''&&month!=undefined){
				 alertConfirm("确定统计"+year+"年"+month+"月定额发票备查账的月合计?",function(){
					  $.ajax({
							 type:"post",
							 url:"/axpjpk/quotaInvoice/monthtongji.do", 
							 data:{
							  year:$("#tongji_year").val(),
							  month:$("#tongji_month").val(),//month得到的为第一次传递的参数
							 }, 
							success:function(data){
								alertPrompt(month);//为第一传递的值
							}
						}); 
					
					
				}); 
			
			}else{
			alertPrompt("请选择月份");
			}
		}else{
			alertPrompt("请选择年份");
		}
 	}

若第一次操作完成后,未执行页面刷新,在发起第二请求时,第一次弹出month为当前的值,但是传递到后台的值依旧为第一次的值

© 著作权归作者所有

上一篇: java
下一篇: html 小技巧
whatwhowhy

whatwhowhy

粉丝 15
博文 50
码字总数 16265
作品 0
杭州
程序员
私信 提问
分享51本关于JavaScript方面的学习书籍(免费下载)

分享51本关于JavaScript方面的学习书籍(免费下载) 1、JavaScript面向对象15分钟教程 2、原型、作用域、闭包的完整解释 3、Javascript面向对象特性实现(封装、继承、接口) 4、JavaScript面向...

邓剑彬
2012/12/02
1K
12
JavaScript 开发者必备:七大资源共享

【IT168 技术】JavaScript 最近几年已经由一个二流选手变成使用最广的函数式编程语言。越来越多的资源投入到这个语言的开发中。   我最近做了很多 JS 开发,有前台的,也有在后台使用 Node...

作者:itwriter
2012/03/19
0
0
JavaScript 开发者必备的7个资源

JavaScript 最近几年已经由一个二流选手变成使用最广的函数式编程语言。越来越多的资源投入到这个语言的开发中。 我最近做了很多JS开发,有前台的,也有在后台使用 Node.js 的。我想在这里分...

虫虫
2012/03/17
8.3K
5
学习Javascript的8张思维导图

分别归类为:  javascript变量  javascript运算符  javascript数组  javascript流程语句  javascript字符串函数  javascript函数基础  javascript基础DOM操作  javascript正则表达式...

thinkyoung
2014/09/23
0
0
React Native iOS混合开发实战教程

在做RN开发的时候通常离不了JS 和Native之间的通信,比如:初始化RN时Native向JS传递数据,JS调用Native的相册选择图片,JS调用Native的模块进行一些复杂的计算,Native将一些数据(GPS信息,...

JiaPengHui
2018/09/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

协议栈

一、关键技术点分析 不同服务在性能上适用不同协议进行传输,如对接异构第三方服务时,通常选择HTTP/Restful等公有协议;而对于内部不同模块之间的服务调用,一般选择性能较高的二进制私有协...

edwardGe
11分钟前
3
0
新建时隐藏按钮,显示明细时显示

在InitControl()中 if (saTableKeys != null) { rpgDesign.Visible = true; rpgPrint.Visible = true; }......

_Somuns
46分钟前
7
0
【实战演练,拒绝996】-SpringBoot2.x自定义Spring boot Starter

欢迎关注 提升能力,涨薪可待 面试知识,工作可待 实战演练,拒绝996 如果此文对你有帮助、喜欢的话,那就点个赞呗! 前言 是不是感觉在工作上难于晋升了呢? 是不是感觉找工作面试是那么难呢...

ccww_
48分钟前
10
0
SpringBoot从入门到放弃,原理篇-自动配置原理

SpringBoot从入门到放弃,原理篇-自动配置原理 springboot自动配置原理 配置文件能配置的属性参照 自动配置原理 1、springboot启动的时候加载主配置类,开启了自动配置功能@EnableAutoConfig...

有一个小阿飞
今天
13
0
php变量和数据类型

php中的变量 PHP中的变量声明 PHP中的变量的使用 PHP中的数据类型之整型 PHP数据类型之浮点类型和布尔类型 PHP数据类型之字符串类型 PHP数据类型之heredoc和nowdoc的使用 PHP数据类型之复合类...

达达前端小酒馆
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部