2011-04-07 3 views
8

나는 같이, 임의 링크의 집합을 가지고 값을 추가/추가jQuery를 - "확인해"속성

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

은 그들 중 일부는 rel 속성, 일부하지가있을 수 있습니다.

각 링크에 값이있는 rel 속성을 추가 할 수 있으며 링크에 이미 값이있는 경우 내 값을 기존 값/값에 추가 할 수 있습니까?

rel="ignore"과 같은 특정 rel 속성을 가진 요소는 건너 뛸 수 있습니까?

+0

SEO 이유로 이러는거야? 변경된 클라이언트 측은 대부분의 검색 엔진 거미를 고려하지 않을 것입니다. – daniellmb

+0

아니요, 이미지 링크를 해당 컨테이너를 기반으로 그룹으로 그룹화하고, 'rel'은 갤러리를 식별하기 위해 라이트 박스 플러그인에서 사용합니다 – Alex

답변

16

짧은 'N 달콤한 : 사용

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

You can try it here.

+0

... 그렇습니다. rel 속성이없는 앵커에 rel을 추가합니다. – karim79

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

이 잘 작동합니다 :

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

단순 반복을 모든 앵커을 통해, 당신의 가치를 추가. rel이 존재하지 않으면 curRel은 빈 문자열이므로 코드가 깨지지 않습니다.

1

단지 attr :

var add = "some rel to add"; 

$('a[rel!="ignore"]').attr('rel', function (i, old) { 
    return old ? old + ' ' + add : add; 
}); 
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); 
});