jqueryforeach,jqueryforeach用法

http://www.itjxue.com  2023-01-08 22:26  来源:未知  点击次数: 

Jquery怎么样多维数组进行增删改查

直接上代码 自己琢磨哈

script

?var?objs?=?{ "name":?"中海国际", "blocks":?[{ "id":?1, "name":?"A座", "floors":?[{ "id":?1, "name":?"1F", "rooms":?["1001",?"1002"] },?{ "id":?2, "name":?"2F", "rooms":?["2001",?"2002"] }] }]}

?for(var?i=0;iobjs.blocks.length;i++){

? var?block?=?objs.blocks[i];

? var?floor?=?block.floors;

? for(var?j=0;jfloor.length;j++){

? alert(floor[j].id+"~"+floor[j].name);

? var?room?=?floor[j].rooms;

? for(var?k=0;kroom.length;k++){

? alert(room[k]);

? }

? }

?}

/script

foreach如何随机遍历

javascript的jquery么?可使用如下语法先随机序,再使用foreach就可以了:

$.shuffleArray([1,2,3,4,5,6,7]); //potential output: [1,3,5,7,2,4,6]

jQuery中$.each()函数的用法引申实例

语法:

$.each(

collection,

callback(indexInArray,

valueOfElement)

)

值得一提的是,forEach

可以很方便的遍历数组和

NodeList

,jQuery

中的

jQuery

对象本身已经部署了这类遍历方法,而在原生

JavaScript

中则可以使用

forEach

方法,但是

IE

并不支持,因此我们可以手动把

forEach

方法部署到数组和

NodeList

中:

if

(

!Array.prototype.forEach

){

Array.prototype.forEach

=

function(fn,

scope)

{

for(

var

i

=

0,

len

=

this.length;

i

len;

++i)

{

fn.call(scope,

this[i],

i,

this);

}

}

}

//

部署完毕后

IE

也可以使用

forEach

document.getElementsByTagName('p').forEach(function(e){

e.className

=

'inner';

});

而jQuery中的$.each()函数则更加强大。$.each()函数和$(selector).each()不一样。$.each()函数可以用来遍历任何一个集合,不管是一个JavaScript对象或者是一个数组,如果是一个数组的话,回调函数每次传递一个数组的下标和这个下标所对应的数组的值(这个值也可以在函数体中通过this关键字获取,但是JavaScript通常会把this这个值当作一个对象即使他只是一个简单的字符串或者是一个数字),这个函数返回所遍历的对象,也就是这个函数的第一个参数,注意这里还是原来的那个数组,这是和map的区别。

其中collection代表目标数组,callback代表回调函数(自己定义),回调函数的参数第一个是数组的下标,第二个是数组的元素。当然我们也可以给回调函数只设定一个参数,这个参数一定是下标,而没有参数也是可以的。

例1:传入数组

!DOCTYPE

html

html

head

script

src=””/script

/head

body

script

$.each([52,

97],

function(index,

value)

{

alert(index

+

‘:

+

value);

});

/script

/body

/html

输出:

0:

52

1:

97

例2:如果一个映射作为集合使用,回调函数每次传入一个键-值对

!DOCTYPE

html

html

head

script

src=””/script

/head

body

script

var

map

=

{

‘flammable':

‘inflammable',

‘duh':

‘no

duh'

};

$.each(map,

function(key,

value)

{

alert(key

+

‘:

+

value);

});

/script

/body

/html

输出:

flammable:

inflammable

duh:

no

duh

例3:回调函数中

return

false时可以退出$.each(),

如果返回一个非false

即会像在for循环中使用continue

一样,

会立即进入下一个遍历

!DOCTYPE

html

html

head

style

div

{

color:blue;

}

div#five

{

color:red;

}

/style

script

src=””/script

/head

body

div

id=”one”/div

div

id=”two”/div

div

id=”three”/div

div

id=”four”/div

div

id=”five”/div

script

var

arr

=

[

"one",

"two",

"three",

"four",

"five"

];//数组

var

obj

=

{

one:1,

two:2,

three:3,

four:4,

five:5

};

//

对象

jQuery.each(arr,

function()

{

//

this

指定值

$(“#”

+

this).text(“Mine

is

+

this

+

“.”);

//

this指向为数组的值,

如one,

two

return

(this

!=

“three”);

//

如果this

=

three

则退出遍历

});

jQuery.each(obj,

function(i,

val)

{

//

i

指向键,

val指定值

$(“#”

+

i).append(document.createTextNode(”

+

val));

});

/script

/body

/html

输出

Mine

is

one.

1

Mine

is

two.

2

Mine

is

three.

3

-

4

-

5

JS的forEach和map方法的区别,还有一个$each

forEach()和map()两个方法都是ECMA5中Array引进的新方法,主要作用是对数组的每个元素执行一次提供的函数,但是它们之间还是有区别的。jQuery也有一个方法$.each(),长得和forEach()有点像,功能也类似。但是从本质上还是有很大的区别的,那么我们探探究竟。

一、forEach和map语法

语法:

//forEach

array.forEach(callback(currentValue, index, array){

//do something

}, this)

//或者

array.forEach(callback(currentValue, index, array){

//do something

})

//map:

var new_array = arr.map(callback[, thisArg]) 

//$.each()

$(selector).each(function(index,element)) //注意参数的顺序

callback: 为数组中每个元素执行的函数,该函数接收三个参数,

参数一:当前数组中元素;参数二:索引; 参数三:当前数组。

this:可选,执行会掉时候,this的指向。

二、区别

2.1、forEach()返回值是undefined,不可以链式调用。

2.2、map()返回一个新数组,原数组不会改变。

2.3、没有办法终止或者跳出forEach()循环,除非抛出异常,所以想执行一个数组是否满足什么条件,返回布尔值,可以用一般的for循环实现,或者用Array.every()或者Array.some();

2.4、$.each()方法规定为每个匹配元素规定运行的函数,可以返回 false 可用于及早停止循环。

三、经典例子

3.1 在使用forEach()时候,如果数组在迭代的视乎被修改,

则其他元素会被跳过。因为 forEach()不会在迭代之前创建数组的副本。

3.2反转字符串

var str = '12345';

Array.prototype.map.call(str, function(x) { //同时利用了call()方法

return x;

}).reverse().join('');

3.3一个笔试题。

1

["1", "2", "3"].map(parseInt); //结果 [1, NaN, NaN] 

如果想得到[1, 2,3]应该这么做

function returnInt(element){

return parseInt(element,10);

}

["1", "2", "3"].map(returnInt);

这主要是因为 parseInt()默认有两个参数,第二个参数是进制数。当parsrInt没有传入参数的时候,而map()中的回调函数时候,会给它传三个参数,第二个参数就是索引,明显不正确,所以返回NaN了。

3.4....

四、兼容性

forEach()和map()是ECMA5新引入的,可能在标准的其他实现中不存在,在使用前可以要Ployfill一下。

具体网上很多吧,更多的是在ie9以下,如果你的项目无视这些,那么你可以不care。

jquery如何将后台数据循环添加进下拉框

给你看下我的做法。页面里准备一个空的select:jquery写法: $.ajax({ type: "GET", url: "Handler/Handler.ashx", data: "action=getCategoriesvalue=", cache: true, success: function(returnvalue) { $("#selSearchCategories").append(rvarray[1]); } });在ashx处理文件中:public void ProcessRequest(HttpContext context) { //context.Response.ContentType = "text/plain"; //context.Response.Write("Hello World"); string value = context.Request.QueryString["value"]; string returnvalue = "false"; DataTable objDT; try { if (context.Request.UrlReferrer.Authority != ConfigurationManager.AppSettings["allowDomain"]) { throw new Exception("非法请求!"); } switch (context.Request.QueryString["action"]) { case "getCategories": GoodsCategoriesEntity objGoodsCategoriesEntity = new GoodsCategoriesEntity(); GoodsCategoriesAction objGoodsCategoriesAction = new GoodsCategoriesAction(Common.GetConfigFilePath(), Common.GetElementName()); objGoodsCategoriesEntity.GCFid = 0; objDT = objGoodsCategoriesAction.ByGCFidValid(null, objGoodsCategoriesEntity); string returnvalue = "所有分类"; foreach (DataRow objDataRow in objDT.Rows) { returnvalue += "" + objDataRow["GC_Name"] + ""; } context.Response.Write(returnvalue); break; default: context.Response.Write(returnvalue); break; } } catch (Exception ex) { context.Response.Write(ex.Message); } }也就是,在处理文件中,将数据处理好,要使用的数据拼接成串,然后返回给jquery,jquery只需将后台返回的结果appen给select就可以了。。。

(责任编辑:IT教学网)

更多

推荐网络创业文章