2012-03-02 30 views
1

好吧我不认为有人已经覆盖了这一点呢。将增量类添加到div中的图像

我有一个div里面有一定数量的图像。我需要将类00x添加到x从1开始的每个图像,并且每次都为每个图像上升。我试图用for语句做这件事,但似乎无法使它工作。我正在使用jQuery库,所以请随时提供jQuery相关修补程序。这里是我的html:

<div id="fixed"> 
    <img src="/prodimages/Ad060-2.jpg" /> 
    <img src="/prodimages/Ad060-2.jpg" /> 
    <img src="/prodimages/Ad060-2.jpg" /> 
</div> 

所以我需要它来选择内部#FIXED所有图像,然后添加类00 +其中i ++为每个图像。我需要像一个PHP foreach。我真的不明白如何在作品中。

请指教。 :)

回答

5

如果图像的数量超过10,使用这样的:

function pad_number(num) { 
    if(num < 10) return '00' + num; 
    else if (num < 100) return '0' + num; 
    return num; 
} 

jQuery('#fixed img').each(function(index, el) { 
    jQuery(el).addClass(pad_number(index)); 
}); 
+0

谢谢你们,我会给它一个机会。我实际上会有超过100张图片,所以我想我需要这样做:else if(num> 99)return num; – 2012-03-02 11:25:28

+0

如果您的号码大于99,它将会落入pad_number方法的最后一行,因此您应该再次取回原始号码。 – steveukx 2012-03-02 15:43:44

+0

啊好吧非常感谢你! :)完美的作品 – 2012-03-02 18:14:11

1

像这样的东西应该这样做:

$("#fixed img").each(function(i) { 
    $(this).addClass("00" + i); 
}; 
+0

只是建议没有榆树需要.. – 2012-03-02 08:13:08

+0

@PranayRana谢谢,更新! – 2012-03-02 08:17:08

+0

感谢您的建议,我对我的需求有点不清楚,我已经接受的答案实际上做了我需要的东西,尽管这确实有效。谢谢您的帮助。 – 2012-03-02 18:16:34

0
$("#fixed img").each(function(i){ 
    this.addClass($.strPad(i,3)); 
}); 

$.strPad = function(i,l,s) { 
    var o = i.toString(); 
    if (!s) { s = '0'; } 
    while (o.length < l) { 
     o = s + o; 
    } 
    return o; 
}; 

源衬垫功能:http://stv.whtly.com/2009/02/27/simple-jquery-string-padding-function/

我希望这有助于:)

+0

为什么他需要另一个功能在前面添加额外的零? – 2012-03-02 08:17:53

+0

“,然后为每个图像添加类00 + i,其中i ++”他可能需要在他的页面或css的其他部分添加零。这将工作也没有填充功能,但问题要求零;) – ThdK 2012-03-02 08:20:41

+0

感谢您的建议,我害怕我有点不清楚在这一点上,类应该去001-009,010-099,100-999 最佳答案已完成诀窍,但这是替代方案。不感兴趣! – 2012-03-02 18:13:56