Configurando o atributo HTML <label> 'para' em JavaScript


86

Como você define o foratributo de um <label>elemento HTML em JavaScript, sem usar jQuery ou qualquer outra biblioteca?

Respostas:


138

Use o htmlForatributo. Presumo que tenha um nome ligeiramente enigmático porque foré uma palavra-chave em JavaScript:

var label = document.createElement('label');
label.htmlFor = 'some-input-id';

Não seria melhor usar apenas setAttribute?
Dmitri Farkov

1
@DmitriFarkov, acho que não. Por que seria melhor?
Drew Noakes em

Eu diria por uma questão de consistência. Desconsideração pessoal por açúcar sintático como este, pois implica que você está definindo uma propriedade real no objeto em vez de um atributo em um objeto de elemento DOM. Responde minha pergunta, porém, melhor apenas subjetivamente.
Dmitri Farkov

16
O DOM trabalha conceitualmente com objetos e propriedades. htmlForé a maneira correta, definindo a propriedade do elemento DOM. Não há necessidade de mexer com atributos, que é o que setAttributefaz.
Fabrício Matté 01/04/2013

Gostaria de poder votar duas vezes mais. Estou usando o Angular 2 para construir um formulário e preciso atualizar um rótulo para o atributo dinamicamente. [para] estava gerando um erro, mas [htmlFor] funcionou muito bem. Obrigado!
cbros2008
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.