jQuery - 从元素和文本中获取文本添加到属性

时间:2014-08-31 20:24:33

标签: javascript jquery

我还在学习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>

任何指导都会非常感激!

谢谢!

4 个答案:

答案 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);

我们已经完成了。

});

示例:http://codepen.io/paulroub/pen/Extrl

答案 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时获得正确的范围,否则您将从您的页面获得所有锚点。