addID em jQuery?

87

Existe algum método disponível para adicionar IDs, como existe para adicionar uma classe - addClass ()?

eozzy
fonte
addClass () não é um seletor. Um seletor é algo definido como elemento (s) antes de fazer algo com / para ele. addClass () é um método, algo que tem uma ação sobre algo.
Phish de
1
você pode substituir a palavra 'seletor' por 'funcionalidade' em sua pergunta?
Milche Patern
Possível duplicata de Adicionar atributo em jQuery
Makyen

Respostas:

183

ID é um atributo, você pode defini-lo com a função attr :

$(element).attr('id', 'newID');

Não tenho certeza do que você quer dizer sobre adicionar IDs, pois um elemento pode ter apenas um identificador e esse identificador deve ser exclusivo.

Christian C. Salvadó
fonte
1
Não tenho certeza de como isso responde à pergunta. Isso não adiciona um id, mas define um, o que pode ser uma grande diferença se você estiver usando IDs dinâmicos
Ian S,
Minha interpretação da pergunta: olhando para um, <div>não há ID e, se por algum motivo você não puder adicionar o ID manualmente, convém automatizar a adição de um ID com Javascript / jQuery.
PJ Brunet
13

você quer dizer um método?

$('div.foo').attr('id', 'foo123');

Apenas tome cuidado para não definir vários elementos para o mesmo ID.

Scunliffe
fonte
9

Como isso :

var id = $('div.foo').attr('id');
$('div.foo').attr('id', id + ' id_adding');
  1. obter ID real
  2. coloque o ID do actuel e adicione o novo
Sylvain
fonte
Não tenho certeza se isso é o que o OP queria ... mas o mais importante, pode haver apenas 1 idvalor de atributo. Mais especificamente, as especificações de um idatributo indicam claramente que ele não pode conter espaços: w3.org/TR/html401/types.html#type-name
scunliffe
1

Eu usei algo assim antes, que aborda a preocupação de @scunliffes. Ele encontra todas as instâncias de itens com uma classe de (neste caso .button), atribui um ID e anexa seu índice ao nome do id:

$(".button").attr('id', function (index) {
	return "button-" + index;
});

Digamos que você tenha 3 itens com o nome de classe .button em uma página. O resultado seria adicionar um ID exclusivo a todos eles (além de sua classe de "botão").

Neste caso, # botão-0, # botão-1, # botão-2, respectivamente. Isso pode ser muito útil. Simplesmente substitua ".button" na primeira linha por qualquer classe que você deseja segmentar e substitua "button" na instrução return pelo que você gostaria que seu ID exclusivo fosse. Espero que isto ajude!

Danny Dickson
fonte