9

私はこのようなランダムなリンクのセットを持っています:

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

relそれらのいくつかは属性を持っているかもしれませんし、持っていないかもしれません。

各リンクに値を持つ属性を追加するにはどうrelすればよいですか。リンクにすでに属性がある場合は、既存の値に自分の値を追加しますか?

また、次のような特定のrel属性を持つ要素をスキップするにはどうすればよいrel="ignore"ですか?

4

5 に答える 5

16

簡単に言うと:

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

ここで試すことができます。

于 2011-04-07T23:30:08.493 に答える
3

これはうまくいくはずです:

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

すべてのアンカーを単純に繰り返し、値を追加します。rel存在しない場合はcurRel空の文字列になるため、コードは壊れません。

于 2011-04-07T23:26:27.937 に答える
1
var toModify = $('#xxx'); /* or how ever you identify you link */
var currentAttr = toModify.attr('rel');
if(currentAttr != 'ignore'){
    toModify.attr('rel', currentAttr + '_asd');
}
于 2011-04-07T23:24:06.097 に答える
1

だけを使用attr

var add = "some rel to add";

$('a[rel!="ignore"]').attr('rel', function (i, old) {
    return old ? old + ' ' + add : add;
});
于 2011-04-07T23:31:20.593 に答える
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);
});
于 2011-04-07T23:31:37.713 に答える