2011-04-07 10 views
8

मैं इस तरह यादृच्छिक लिंक का एक सेट है,:jQuery - जोड़ें/संलग्न मान "rel" विशेषता

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

उनमें से कुछ एक rel विशेषता, कुछ नहीं हो सकता है।

प्रत्येक लिंक के मूल्य के साथ rel विशेषता कैसे जोड़ सकता है, और यदि लिंक में पहले से एक है, तो मेरे मान को मौजूदा मान/मानों में जोड़ दें?

इसके अलावा मैं किसी भी तत्व को छोड़ सकता हूं जिसके साथ एक निश्चित रिला विशेषता है, जैसे rel="ignore"? सभी एंकर से अधिक

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

सरल यात्रा, अपने मूल्य जोड़कर:

+0

क्या आप इसे एसईओ कारणों से कर रहे हैं? अधिकांश खोज इंजन मकड़ियों के लिए ग्राहक पक्ष में किए गए परिवर्तनों को ध्यान में नहीं रखा जाएगा। – daniellmb

+0

नहीं, मैं अपने कंटेनर के आधार पर समूहों में छवि लिंक को समूहित करना चाहता हूं, और 'rel' का प्रयोग लाइब्रेरी प्लगइन द्वारा गैलरी – Alex

उत्तर

16

लघु 'एन मिठाई:

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

You can try it here.

+0

की पहचान करने के लिए किया जाता है ... और हां यह रिले विशेषताओं के बिना एंकरों से एक रिलायंस जोड़ देगा। – 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

यह ठीक काम करना चाहिए। यदि 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/ डीजीजीएफएन /):

var myValue = 'abc'; 

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