使用jQuery将字符串附加到元素属性的末尾

时间:2010-03-25 13:54:59

标签: jquery

我有一个元素:

<select id="row" />

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

<select id="row_1" />

我用来实现这个目标的jQuery是(来自each):

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

这看起来像罪恶一样丑陋,虽然它有效但我想知道是否有更简单的解决方案。在这个例子中,ID前缀(例如行)永远不会是常量,所以我不能只做'row_'+row_count

干杯!

2 个答案:

答案 0 :(得分:10)

不要忘记扩展jQuery非常简单:

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

然后在其他任何地方你想要这样做:

$('p').appendAttr('id', 'i_like_turtles');

答案 1 :(得分:8)

您可以传递.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()