jQuery根据元素的数量增加数量

时间:2015-03-02 15:02:46

标签: javascript jquery

小提琴:http://jsfiddle.net/6vxe8qyj/

我编写了一些脚本,添加了一个名为trackingID的新属性,该属性获取每个元素的标题并将其添加到跟踪字符串中。

以上工作正常。

<a class="banner" title="This Is mainBanner 1"></a>

将是:

<a class="banner" title="This Is mainBanner 1" trackingid="MAINBANNER-_-BANNER-_-This+Is+mainBanner+1"></a>

然而,由于我想要编号的字符串的 BANNER 部分,我碰到了一点点。即BANNER+1 - BANNER+2

然后我有第二组横幅(#secBanners),我需要再次从1开始。

我目前正在undefined,我不确定如何继续。

任何帮助都会很棒!

由于

3 个答案:

答案 0 :(得分:1)

使用您当前的方法(EXAMPLE):

JS

$('a').attr("trackingID", " ");

function tracking(element, attr, attrVal, track, i) {
    track.each(function () {
        var $this = $(this),
            trackRegEx,
            newVal = attrVal.replace(/\[intBanner\]/g, i);

        $this.attr(attr, newVal);

        if ($this.attr('title') !== undefined && $this.attr('title') !== '') {
            trackRegEx = $this.attr('title').replace(/ /g, '+');
            $this.attr('trackingID', $this.attr('trackingID') + trackRegEx);
        }
        i++;
    });
}

tracking($('#mainBanners a'), 'trackingID', 'MAINBANNER-_-BANNER[intBanner]-_-', $('#mainBanners a[trackingID]'), 0);
tracking($('#secBanners a'), 'trackingID', 'PROMOBANNER-_-BANNER[intBanner]-_-', $('#secBanners a[trackingID]'), 0);

答案 1 :(得分:0)

这是你想要的吗?

演示@ Fiddle

$(".banner").each(function() {
    var title = this.title.replace(/\s+/g, "+");
    $(this).attr({
        "trackingid": "MAINBANNER-_-BANNER+" + title.slice(-1) + "-_-" + title
    });
});

P.S。请你做其他检查,如空/未定义等。

答案 2 :(得分:0)

这将按照您的要求执行:

$('#mainBanners a.banner').attr('trackingID',function(i){
   return 'MAINBANNER-_-BANNER+' + (i+1)
});

$('#secBanners a.banner').attr('trackingID',function(i){
   return 'PROMOBANNER-_-BANNER+' + (i+1)
});

http://jsfiddle.net/6vxe8qyj/4/