私はこのようなランダムなリンクのセットを持っています:
<a rel="foo"> ... </a>
...
<a> ... </a>
rel
それらのいくつかは属性を持っているかもしれませんし、持っていないかもしれません。
各リンクに値を持つ属性を追加するにはどうrel
すればよいですか。リンクにすでに属性がある場合は、既存の値に自分の値を追加しますか?
また、次のような特定のrel属性を持つ要素をスキップするにはどうすればよいrel="ignore"
ですか?
私はこのようなランダムなリンクのセットを持っています:
<a rel="foo"> ... </a>
...
<a> ... </a>
rel
それらのいくつかは属性を持っているかもしれませんし、持っていないかもしれません。
各リンクに値を持つ属性を追加するにはどうrel
すればよいですか。リンクにすでに属性がある場合は、既存の値に自分の値を追加しますか?
また、次のような特定のrel属性を持つ要素をスキップするにはどうすればよいrel="ignore"
ですか?
これはうまくいくはずです:
$("a").each(function(index) {
var curRel = $(this).attr("rel");
if (curRel !== "ignore")
$(this).attr("rel", curRel + " my value");
});
すべてのアンカーを単純に繰り返し、値を追加します。rel
存在しない場合はcurRel
空の文字列になるため、コードは壊れません。
var toModify = $('#xxx'); /* or how ever you identify you link */
var currentAttr = toModify.attr('rel');
if(currentAttr != 'ignore'){
toModify.attr('rel', currentAttr + '_asd');
}
だけを使用attr
:
var add = "some rel to add";
$('a[rel!="ignore"]').attr('rel', function (i, old) {
return old ? old + ' ' + add : add;
});
少し冗長ですが、これでうまくいくはずです (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);
});