导航:首页 > 源码编译 > jqueryeach源码

jqueryeach源码

发布时间:2023-08-16 03:21:32

‘壹’ jquery中each 跳出为什么用return false

由于jQuery的each是通过循环调用回调函数的方式实现的,所以在函数内写的break只适用于函数内部的逻辑,并不能对函数外层的循环起到作用,所以break不管用。具体可以分析一下jQuery的源码,下面以jQuery2.1.4中的each方法举例:

each:function(obj,callback,args){
varvalue,
i=0,
length=obj.length,
isArray=isArraylike(obj);//如果obj是一个类似数组的结构(可用for遍历的),则为true

if(args){
if(isArray){
for(;i<length;i++){
value=callback.apply(obj[i],args);//循环调用

if(value===false){//如果返回值全等于(包括类型和值)false,就退出循环
break;
}
}
}else{
for(iinobj){//这种是对象的,需要用forin遍历
value=callback.apply(obj[i],args);

if(value===false){
break;
}
}
}
//Aspecial,fast,caseforthemostcommonuseofeach
}else{
if(isArray){
for(;i<length;i++){
value=callback.call(obj[i],i,obj[i]);

if(value===false){
break;
}
}
}else{
for(iinobj){
value=callback.call(obj[i],i,obj[i]);

if(value===false){
break;
}
}
}
}
returnobj;
}

由源码可以看出,只有回调函数返回的值为false时,才会退出循环

‘贰’ 急!简单Javascript/js/jquery代码实现,源码如下


<!DOCTYPE html>

<html>

<head>

<script src="jquery-1.9.1.js">

</script>

<script>

$(document).ready(function(){

$("#zh").click(function(){

var ys1=$('#ys1').val();

var ys2=$('#ys2').val();

var htmlstr='';

$("input[name='cb']:checked").each(function(){

if(ys1!=""){

htmlstr+='<input type="text" value="颜色1:'+ys1+'-'+$(this).val()+'"><br/>';

}

if(ys2!=""){

htmlstr+='<input type="text" value="颜色2:'+ys2+'-'+$(this).val()+'"><br/>';

}

})

$("#cc").html(htmlstr);

});

});

</script>

</head>

<body>

颜色1<select name="st[]" id="ys1"> <option> <option value="1">y1 <option value="2">y2 <option value="3">y3</select><br>颜色2<select name="st[]" id="ys2"> <option> <option value="1">y1 <option value="2">y2 <option value="3">y3</select><br>尺码: <br><input type="checkbox" name="cb" value="a">X1<input type="checkbox" name="cb" value="b">X2<input type="checkbox" name="cb" value="c">X3<input type="button" value="组合" onclick="" id="zh"><br><br>需求:如果颜色1选择为1<br>如果颜色2选择为2<br>尺码选择a和b<br>点击【组合】按钮后——创建4个input如下:value值分别为1-a、1-b、2-a、2-b

<div id="cc">


</div>

</body>

</html>

阅读全文

与jqueryeach源码相关的资料

热点内容
22岁程序员图片大全 浏览:954
ibm如何查看服务器raid 浏览:678
程序员那么可爱叶子是谁 浏览:716
gcc82编译器入口地址 浏览:693
上架一个服务器要做什么 浏览:854
创立文件夹命令 浏览:252
单片机移位寄存器 浏览:6
java程序设计及实训教程 浏览:335
redis有序集合算法 浏览:778
java获取最大值 浏览:74
linux硬件配置命令 浏览:948
java6webservice 浏览:450
硬件加密的未来发展趋势 浏览:589
钉钉上文件夹怎么做 浏览:277
编译动物之塔 浏览:613
玩嘻哈必下的app在哪里下 浏览:210
谈谈如何给文件夹或文件加密 浏览:37
螺杆式压缩机温度计 浏览:706
gnu编译器pdf 浏览:463
稀有程序员图片 浏览:43