【问题标题】:jQuery - add/append value to "rel" attributejQuery - 将值添加/附加到“rel”属性
【发布时间】:2011-04-07 23:17:58
【问题描述】:

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

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

其中一些可能具有rel 属性,而另一些则没有。

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

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

【问题讨论】:

  • 您这样做是出于 SEO 的原因吗?大多数搜索引擎蜘蛛不会考虑客户端所做的更改。
  • 不,我想根据容器将图片链接分组,rel 被灯箱插件用于识别画廊

标签: javascript jquery html rel


【解决方案1】:

短而甜:

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

You can try it here.

【讨论】:

  • ...是的,它会为没有 rel 属性的锚添加一个 rel。
【解决方案2】:

这应该可以正常工作:

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

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

【讨论】:

    【解决方案3】:
    var toModify = $('#xxx'); /* or how ever you identify you link */
    var currentAttr = toModify.attr('rel');
    if(currentAttr != 'ignore'){
        toModify.attr('rel', currentAttr + '_asd');
    }
    

    【讨论】:

      【解决方案4】:

      只使用attr:

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

      【讨论】:

        【解决方案5】:

        有点冗长,但应该这样做(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);
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多