【问题标题】:how to add a class numbered from 4 onwards如何添加从 4 开始的班级
【发布时间】:2011-05-03 13:17:25
【问题描述】:

我已经为我的所有元素添加了类,但我希望类从数字 4 开始(第一类是 .cc_content_4,下一个是 .cc_content_5 等等)所以我尝试更改计数器设置为.它没有用 有任何想法吗? 这是我的代码

$(".cc_submenu").find("ul.portfolio-list li").each(function(i){
    i == 4;
    $(this).addClass("cc_content_"+i);
    var href = $(this).find("a").attr("href");
    $(this).find("a").attr("href","#");
    $('.cc_content .cc_content_'+i).load(href);
});

【问题讨论】:

    标签: jquery each counter


    【解决方案1】:

    您正在使用i == 4,它是一个相等运算符,而不是一个赋值。改成i += 4就行了;

    $(".cc_submenu").find("ul.portfolio-list li").each(function(i){
        //i == 4; // This part will just return true/false, not change i
        i += 4; // this is what you're looking for.
        $(this).addClass("cc_content_"+i);
        var href = $(this).find("a").attr("href");
        $(this).find("a").attr("href","#");
        $('.cc_content .cc_content_'+i).load(href);
    });
    

    【讨论】:

    • 你的意思不是+=1而不是+=4——你需要在find()函数之前的某个地方定义i=4
    • 不,我正在作为参数传递给表示索引的函数。当您在函数中添加 4 时,它只会影响该函数范围。你需要 i 比它的索引高 4,所以 i += 4,或者 i = i + 4;
    • @slhck: 不,如果第一个是从4 开始,他的意思是+=4。 jQuery将索引传递给迭代器函数,第一个索引是0
    • @T.J.请参阅@Evan Mulawski 的答案 - 这就是我的意思。
    • @slhck:他正在增加一个没有作为参数传递的值,所以他正在做一些完全不同的事情。
    【解决方案2】:

    首先,您使用的是相等运算符而不是赋值(== 而不是 =)。其次,您可以在each 迭代函数之外设置一个变量,然后将该变量加一:

    var i = 4;
    $(".cc_submenu").find("ul.portfolio-list li").each(function(){
        $(this).addClass("cc_content_"+i);
        var href = $(this).find("a").attr("href");
        $(this).find("a").attr("href","#");
        $('.cc_content .cc_content_'+i).load(href);
        i += 1;
    });
    

    作为说明:

    i == 4; - 此表达式报告真或假,但返回值不存储在任何地方。您的代码不需要这样做。

    i = 4; - 此表达式将i 设置为4

    【讨论】:

    • “其次,你需要在每个迭代函数之外设置一个变量,然后将变量加一。”或者他可以使用已经提供的 通过each 函数:api.jquery.com/each
    • @T.J. Crowder:我知道这一点,但each 函数从零开始。没有办法解决这个问题。
    • @Evan Mulawski:从 0 开始并没有什么问题......你只需将它增加到你想要的......如果你想从 5 开始,你将 5 添加到它传递的任何值给你。
    • @Robert:你是对的。但是,我选择了对 OP 来说更“可读”的 sn-p。
    • @Robert:我确实更喜欢你的方式而不是我的方式,它以最小的变化达到了预期的结果。 (+1)
    【解决方案3】:
    $(".cc_submenu").find("ul.portfolio-list li:gt(3)").each(function(i,value){
        $(this).addClass("cc_content_"+i);
        var href = $(this).find("a").attr("href");
        $(this).find("a").attr("href","#");
        $('.cc_content .cc_content_'+i).load(href);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-23
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2020-10-19
      • 1970-01-01
      相关资源
      最近更新 更多