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

Ben*_*ard 1 jquery

我有一个元素:

<select id="row" />
Run Code Online (Sandbox Code Playgroud)

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

<select id="row_1" />
Run Code Online (Sandbox Code Playgroud)

我用来实现这个的jQuery是(从一个内部each):

$(this).attr('id',$(this).attr('id')+'_'+row_count);
Run Code Online (Sandbox Code Playgroud)

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

干杯!

nic*_*ckf 10

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

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

然后你想做的其他地方:

$('p').appendAttr('id', 'i_like_turtles');
Run Code Online (Sandbox Code Playgroud)


Nic*_*ver 8

你可以传递.attr()一个函数,如下所示:

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

向下滚动一下,找到函数重载 .attr()