首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >javascript /jQuery - For循环

javascript /jQuery - For循环
EN

Stack Overflow用户
提问于 2012-03-01 04:34:25
回答 3查看 176.7K关注 0票数 19

我有一个查询ajax响应,然后我使用它来设置数组变量。有没有什么办法可以使用'For Loop‘来更改为#name,这样我就不需要写出一行代码来设置每个数组元素。

代码语言:javascript
复制
array[0]=$('#event00',response).html();
array[1]=$('#event01',response).html();
array[2]=$('#event02',response).html();
array[3]=$('#event03',response).html();

因此,“#event00”可以在for循环中使用,以更改为“#event01”等

EN

回答 3

Stack Overflow用户

发布于 2012-03-01 04:37:21

使用常规的for循环并格式化要在选择器中使用的索引。

代码语言:javascript
复制
var array = [];
for (var i = 0; i < 4; i++) {
    var selector = '' + i;
    if (selector.length == 1)
        selector = '0' + selector;
    selector = '#event' + selector;
    array.push($(selector, response).html());
}
票数 46
EN

Stack Overflow用户

发布于 2012-03-01 05:13:13

像这样的怎么样?

代码语言:javascript
复制
var arr = [];

$('[id^=event]', response).each(function(){
    arr.push($(this).html());
});

事件选择器匹配attr属性以给定字符串开头的元素,这样您就不必关心“[attr^=selector]”后面的数字了。

票数 8
EN

Stack Overflow用户

发布于 2012-03-01 04:35:30

.each()应该可以为您工作。http://api.jquery.com/jQuery.each/http://api.jquery.com/each/,或者您也可以使用.map

代码语言:javascript
复制
var newArray = $(array).map(function(i) {
    return $('#event' + i, response).html();
});

编辑:我删除了添加的前缀0,因为建议不要使用它。

如果您必须使用它

代码语言:javascript
复制
var newArray = $(array).map(function(i) {
    var number = '' + i;
    if (number.length == 1) {
        number = '0' + number;
    }   
    return $('#event' + number, response).html();
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9506189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档