jQuery - 为“rel”属性添加/追加值

时间:2011-04-07 23:17:59

标签: javascript jquery html rel

我有一组随机链接,如下所示:

<a rel="foo"> ... </a>
...
<a> ... </a>

其中一些可能具有rel属性,有些则不具有。

如何为每个链接添加一个带有值的rel属性,如果该链接已经有一个,那么将我的值附加到现有值/值?

另外,我如何跳过任何具有特定rel属性的元素,例如rel="ignore"

5 个答案:

答案 0 :(得分:16)

短暂的甜蜜:

$("a[rel!='ignore']").each(function() {
    this.rel += 'theValue';
});

You can try it here.

答案 1 :(得分:3)

这应该可以正常工作:

$("a").each(function(index) {
    var curRel = $(this).attr("rel");
    if (curRel !== "ignore")
        $(this).attr("rel", curRel + " my value");
});

对所有锚点进行简单迭代,追加您的值。如果rel不存在,curRel将只是空字符串,因此代码不会中断。

答案 2 :(得分:1)

var toModify = $('#xxx'); /* or how ever you identify you link */
var currentAttr = toModify.attr('rel');
if(currentAttr != 'ignore'){
    toModify.attr('rel', currentAttr + '_asd');
}

答案 3 :(得分:1)

仅使用attr

var add = "some rel to add";

$('a[rel!="ignore"]').attr('rel', function (i, old) {
    return old ? old + ' ' + add : add;
});

答案 4 :(得分:1)

有点冗长,但应该这样做(http://jsfiddle.net/dGGFN/):

var myValue = 'abc';

$.each($('a'), function(idx, item) {
  var a = $(item);
  var rel = $(a).attr('rel');
  $(a).attr('rel', rel + myValue);
});