我还在学习jQuery - 所以我很抱歉,如果我问了很多,或者我要问的是容易还是愚蠢。
当我有一个问题时,我通常会尝试举例说明我尝试过但我真的不知道从哪里开始!因此,即使是对我需要做的事情的一些指导也不仅仅是好的!我非常愿意尝试自己这样做,我只是不确定谷歌会做什么!
基本上我想要做的是获取我的Anchors的内容并将它们添加到跟踪属性。然后将属性中的空格交换为+'s
代码:
<a href="#" tracking="Banner-_-Link+1-_-">LINK ONE</a>
<a href="#" tracking="Banner-_-Link+2-_-">LINK TWO</a>
加载后的代码
<a href="#" tracking="Banner-_-Link+1-_-LINK+ONE">LINK ONE</a>
<a href="#" tracking="Banner-_-Link+2-_-LINK+TWO">LINK TWO</a>
任何指导都会非常感激!
谢谢!
答案 0 :(得分:3)
件逐片:
获取tracking
属性的所有链接:
var anchors = $('a[tracking]');
并循环播放:
anchors.each( function() {
在每个点上,获取a
元素及其文字(将' '
替换为'+'
):
var a = $(this);
var txt = a.text().replace(' ', '+');
并将该文本附加到现有属性:
a.attr('tracking', a.attr('tracking') + txt);
我们已经完成了。
});
答案 1 :(得分:0)
HTML:
<a href="#" class="click-this" tracking="Banner-_-Link+1-_-">LINK ONE</a> <!--Added Class 'click-this'-->
<a href="#" class="click-this" tracking="Banner-_-Link+2-_-">LINK TWO</a>
Jquery的:
$('.click-this').on('click', function(){ //On click of the anchor tag
var a = $(this).text(); //Take the text content of the one that's being clicked
var b = $(this).attr('tracking'); //take the existing content of attribute 'tracking'
b = b+a; //concatenating the two
$(this).attr('tracking', b); //reassigning the new value to attribute
});
使用他们的文档在Jquery上阅读很多内容。
在此处详细了解.attr()
:http://api.jquery.com/attr/
答案 2 :(得分:0)
最简单的方法是将你的html更改为:
<a href="#" tracking="Banner-_-Link+1-_-" onclick=$(this).attr('tracking',$(this).attr('tracking')+$(this).text().replace(' ', '+'))>LINK ONE</a>
答案 3 :(得分:0)
更好的方法是将其添加到数据属性中:
<a href="#" data-tracking="Banner-_-Link+1-_-">LINK ONE</a>
您可以使用data
方法访问它:
$('a').data('tracking'); //Banner-_-Link+1-_-
我不知道你为什么要动态改变它,但无论如何,你可以......
$('a').each(function() {
var anchor = $(this),
anchorData = anchor.data('tracking'),
text = anchor.text().replace(' ', '+');
anchor.data('tracking', anchorData += text);
});
只需确保在使用jQuery选择a
时获得正确的范围,否则您将从您的页面获得所有锚点。