小提琴: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
,我不确定如何继续。
任何帮助都会很棒!
由于
答案 0 :(得分:1)
使用您当前的方法(EXAMPLE):
$('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)
});