【问题标题】:javascript /jQuery - For Loopjavascript /jQuery - For 循环
【发布时间】:2012-03-19 08:32:52
【问题描述】:

我有一个查询 ajax 响应,然后我用它来设置数组变量。 反正有没有使用'For Loop'来更改为#name,这样我就不必写出一行代码来设置每个数组元素。

array[0]=$('#event00',response).html();
array[1]=$('#event01',response).html();
array[2]=$('#event02',response).html();
array[3]=$('#event03',response).html();

所以 '#event00' 可以在 for 循环中使用以更改为 '#event01' 等

【问题讨论】:

  • 删除额外的零“0”。相信它会对你有很大帮助。我会忽略 00 和 0 的计数。
  • 什么最终为你工作?

标签: javascript jquery loops for-loop


【解决方案1】:

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

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());
}

【讨论】:

  • 完全同意格雷格!!原生函数总是比任何辅助函数都快。
【解决方案2】:

这样的事情呢?

var arr = [];

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

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

【讨论】:

    【解决方案3】:

    .each() 应该适合你。 http://api.jquery.com/jQuery.each/http://api.jquery.com/each/ 或者您可以使用 .map

    var newArray = $(array).map(function(i) {
        return $('#event' + i, response).html();
    });
    

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

    如果你必须使用它,请使用

    var newArray = $(array).map(function(i) {
        var number = '' + i;
        if (number.length == 1) {
            number = '0' + number;
        }   
        return $('#event' + number, response).html();
    });
    

    【讨论】:

    • @MДΓΓБДLL 罗杰,我会补充的。
    • 这与问题中的代码(即 setting 数组值)有何关系?单独在一行上调用.html() 不会做任何事情......
    • @nnnnnn 很好,我忘了将它添加到数组中。我已将其删除并替换为地图。
    猜你喜欢
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多