代码之家  ›  专栏  ›  技术社区  ›  Ben Everard

使用jquery在元素属性的末尾追加一个字符串

  •  1
  • Ben Everard  · 技术社区  · 15 年前

    我有一个元素:

    <select id="row" />
    

    我想在id属性的末尾附加一个字符串,如下所示:

    <select id="row_1" />
    

    我用来实现这一点的jquery是 each ):

    $(this).attr('id',$(this).attr('id')+'_'+row_count);
    

    这看起来像罪恶,虽然它的工作,我想知道是否有一个更简单的解决方案。在这个例子中,id前缀(例如row)从来都不是常量,所以我不能只做 'row_'+row_count .

    干杯!

    2 回复  |  直到 14 年前
        1
  •  10
  •   nickf    14 年前

    别忘了扩展jquery非常简单:

    $.fn.appendAttr = function(attrName, suffix) {
        this.attr(attrName, function(i, val) {
            return val + suffix;
        });
        return this;
    };
    

    然后你想做的其他事情:

    $('p').appendAttr('id', 'i_like_turtles');
    
        2
  •  8
  •   Nick Craver    15 年前

    你可以通过 .attr() 像这样的函数:

    $("select").attr("id", function(i, val) {
      return val + '_' + i; //i == index, val == original attribute, the id
    });
    

    Scroll down a bit here to find the function overload for .attr()