$.each(obj, fn)

本文详细介绍了JavaScript中的$.each()函数,一个用于迭代对象和数组的通用函数。通过示例展示了如何使用该函数访问数组中的项目和索引,以及对象中的属性和值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


$.each(obj, fn)

一个通用的迭代函数,可用于近似地迭代对象和数组。

这个函数与$().each()不同,$().each()是专门用于迭代和执行jQuery对象的函数。而这个函数可以用于迭代任何对象和数组。 这个函数的回调中包含两个参数:第一个是key(对象)或index(数组),第二个是值。

返回值:Object

参数:

  • obj (Object): 要重复迭代的对象或数组
  • fn (Function): 要在每个对象中执行的函数
 
示例:

这是一个迭代数组中所有项目的例子,通过函数访问了其中的每个项目和索引。

$.each( [0,1,2], function(i, n){ alert( "Item #" + i + ": " + n ); });

示例:

这是一个迭代对象中所有属性的例子,通过函数访问了每个属性的名称和值。

$.each( { name: "John", lang: "JS" }, function(i, n){ alert( "Name: " + i + ", Value: " + n ); });

 
$.each( obj, fn )

A generic iterator function, which can be used to seamlessly iterate over both objects and arrays. This function is not the same as $().each() - which is used to iterate, exclusively, over a jQuery object. This function can be used to iterate over anything.

The callback has two arguments:the key (objects) or index (arrays) as the first, and the value as the second.

If you wish to break the each() loop at a particular iteration you can do so by making your function return false. Other return values are ignored.

Return value: Object
Parameters:

  • obj (Object): The object, or array, to iterate over.
  • fn (Function): The function that will be executed on every object.
 

Example:

This is an example of iterating over the items in an array, accessing both the current item and its index.

 $.each( [0,1,2], function(i, n){     alert( "Item #" + i + ": " + n );   });  

Example:

This is an example of iterating over the properties in an Object, accessing both the current item and its key.

 $.each( { name: "John", lang: "JS" }, function(i, n){     alert( "Name: " + i + ", Value: " + n );   });  


已有文件目录如下: webserver/ ├── data └── contact.json ├── images ├── img ├── js ├── action.js └── jquery-1.9.1.min.js ├── css ├── About.html ├── Contact.html ├── Work.html └── Index.html 请根据此已有文件,使用C语言多线程实现一个简单的web server(端口80)承载附件的web,提供完善Debug机制,Web server需完成get post等基础请求处理 已知contact.html是登录的页面,action.js源代码如下: // JavaScript Document /* *所有js效果就绪,加载网页即执行 * */ $(function(){ /**** 根据显示器分辨率,选择css文件 ****/ if(screen.width > 960){ $("link").attr("href","css/style.css"); $("head").append("<link>"); } /**** 根据显示器分辨率,选择css文件 ****/ /*********** About页面Banner切换 ***********/ $("#about_slider").easySlider({ auto:true, width:415, height:362}); /*********** About页面Banner切换 ***********/ /*********** Contact页面表单验证 **************/ var inputNameObj = $("#name"); var inputEmailObj = $("#email"); var inputMessageObj = $("#message"); var isNameOn = false; var isEmailOn = false; var isMessageOn = false; /* 初始化按钮是否可按 */ isButton(); /* 处理name字段缓存 */ if(!isNull(inputNameObj.val())){ var text = inputNameObj.val(); if(!isName(text)){ $("#name").css("border-color","red"); isNameOn = false; } else{ $("#name").css("border-color","black"); isNameOn = true; } isButton(); } /* 处理email字段缓存 */ if(!isNull(inputEmailObj.val())){ var text = inputEmailObj.val(); if(isNull(text) || !isEmail(text)){ $("#email").css("border-color","red"); isEmailOn = false; } else{ $("#email").css("border-color","black"); isEmailOn = true; } isButton(); } /* 处理message字段缓存 */ if(!isNull(inputMessageObj.val())){ var text = inputMessageObj.val(); if(isNull(text) || !isMessage(text)){ $("#message").css("border-color","red"); isMessageOn = false; } else{ $("#message").css("border-color","black"); isMessageOn = true; } isButton(); } /* 检测SUBMIT按钮是否可按*/ function isButton(){ if(isNameOn && isEmailOn && isMessageOn){ $("#button").css("background-color","#f04922"); $("#button").removeAttr("disabled"); } else{ $("#button").css("background-color","#666"); $("#button").attr("disabled",true); } }; /* name字段输入时的格式检测 */ inputNameObj.keyup(function(){ var text = inputNameObj.val(); if(isNull(text) || !isName(text)){ $("#name").css("border-color","red"); isNameOn = false; } else{ $("#name").css("border-color","black"); isNameOn = true; } isButton(); }); /* email字段输入时的格式检测 */ inputEmailObj.keyup(function(){ var text = inputEmailObj.val(); if(isNull(text) || !isEmail(text)){ isEmailOn = false; } else{ $("#email").css("border-color","black"); isEmailOn = true; } isButton(); }); /* message字段输入时的格式检测 */ inputMessageObj.keyup(function(){ var text = inputMessageObj.val(); if(isNull(text) || !isMessage(text)){ $("#message").css("border-color","red"); isMessageOn = false; } else{ $("#message").css("border-color","black"); isMessageOn = true; } isButton(); }); /* 检测是否为空或者空格 */ function isNull(str){ if(str == "") { return true; } var regu = "^[ ]+$"; var re = new RegExp(regu); return re.test(str); }; /* name字段只有字母和数字,以字母开头 */ function isName(str){ var regu = /^[a-zA-Z][0-9a-zA-Z]*$/; var re = new RegExp(regu); if(regu.test(str)){ return true; } else{ return false; } }; /* email字段符合邮件格式 */ function isEmail(str){ var myReg = /^[-_A-Za-z0-9\.]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/; if(myReg.test(str)){ return true; } else{ return false; } }; /* message字段不能含不可见字符,如+#&=|<>^~ */ function isMessage(str){ var myReg = /[\+\#\&\=\|\<\>\^\~]/; if(myReg.test(str)){ return false; } else{ return true; } }; /* name字段光标移出时的检测 */ $("#name").blur(function(){ var text = inputNameObj.val(); if(isNull(text) || !isName(text)){ $("#name").css("border-color","red"); isNameOn = false; } else{ $("#name").css("border-color","black"); isNameOn = true; } isButton(); }); /* email字段光标移出时的检测 */ $("#email").blur(function(){ var text = inputEmailObj.val(); if(isNull(text) || !isEmail(text)){ $("#email").css("border-color","red"); isEmailOn = false; } else{ $("#email").css("border-color","black"); isEmailOn = true; } isButton(); }); /*message字段光标移出时的检测*/ $("#message").blur(function() { var text = inputMessageObj.val(); if(isNull(text) || !isMessage(text)){ $("#message").css("border-color","red"); isMessageOn = false; } else{ $("#message").css("border-color","black"); isMessageOn = true; } isButton(); }); /* 按钮触发事件 */ $("#button").click(function(){ /* post的httprequest请求 夹带name、email、message url为"data/contact.json" */ $.post("data/contact.json", { name:$("#name").val(), email:$("#email").val(), message:$("#message").val() },function(data){ $.each(data,function(InfoIndex,Info){ if(InfoIndex == "callback") { alert(Info); } }); }); }); /*********** Contact页面表单验证 **************/ /*********** 鼠标经过图片效果 **************/ $("#about_text ul img").each(function(k,img){ new JumpObj(img,10); $(img).hover(function(){ this.parentNode.parentNode.className="hover"; }); }); $("#footer ul img").each(function(k, img) { new JumpObj(img,10); $(img).hover(function() { this.parentNode.parentNode.className="hover"; }); }); /*********** 鼠标经过图片效果 **************/ }); /* *About页面Banner实现从右到左切换效果函数 * */ (function($) { $.fn.easySlider = function(options){ // 默认参数设置 var defaults = { speed: 1300, auto: false, pause: 3000, width: 415, height: 362, }; var options = $.extend(defaults, options); this.each(function() { var obj = $(this); var s = $("li", obj).length; var w = options.width; var h = options.height; obj.width(w); obj.height(h); obj.css("overflow","hidden"); var ts = s-1; var t = 0; $("ul", obj).css('width',s*w); $("li", obj).css('float','right'); function animate(dir,clicked){ var ot = t; if(ot == ts){ t = 0; $("ul",obj).css("margin-left","0px") }; t = t + 1; p = (t*w*-1); $("ul",obj).animate( { marginLeft: p }, options.speed ); if(options.auto){; timeout = setTimeout(function(){ animate("next",false); },options.speed+options.pause); }; }; // 初始化 var timeout; if(options.auto){; timeout = setTimeout(function(){ animate("next",false); },options.pause); }; }); }; })(jQuery); /* * *鼠标经过图片抖动函数 * */ function JumpObj(elem, range, startFunc, endFunc) { //图片鼠标移上去的动画效果 var curMax = range = range || 6; startFunc = startFunc || function(){}; endFunc = endFunc || function(){}; var drct = 0; var step = 1; init(); function init() { elem.style.position = 'relative';active() } function active() { elem.onmouseover = function(e) {if(!drct)jump()} } function deactive() { elem.onmouseover = null } function jump() { var t = parseInt(elem.style.top); if (!drct) motionStart(); else { var nextTop = t - step * drct; if (nextTop >= -curMax && nextTop <= 0) elem.style.top = nextTop + 'px'; else if(nextTop < -curMax) drct = -1; else { var nextMax = curMax / 2; if (nextMax < 1) {motionOver();return;} curMax = nextMax; drct = 1; } } setTimeout(function(){jump()}, 200 / (curMax+3) + drct * 3); } function motionStart() { startFunc.apply(this); elem.style.top='0'; drct = 1; } function motionOver() { endFunc.apply(this); curMax = range; drct = 0; elem.style.top = '0'; } this.jump = jump; this.active = active; this.deactive = deactive; }
最新发布
08-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值