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?

Drew Noakes
fonte

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';
Drew Noakes
fonte
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