Como posso obter o nome do elemento com o jQuery?

130

Como posso obter a propriedade name do elemento HTML com o jQuery?

Poonam Bhatt
fonte
algumas informações em html ou até um pouco mais sobre o elemento que você deseja que o nome nos ajudaria a fornecer uma resposta mais específica.
Patricia
4
Use .prop()para obter propriedades e .attr()obter atributos. Não use .attr()para obter uma propriedade como todos sugerem. Estamos trabalhando com JavaScript aqui, não com marcação HTML.
11
Isso deve ser reaberto. Asker devem ser recompensados por chegar ao ponto e não prefaciar com algo como "eu tenho este site onde ..."
cantera
@ cantera25: obrigado por apontar isto ..
Poonam Bhatt

Respostas:

221

Você deve usar attr('name')assim

 $('#yourid').attr('name')

você deve usar um seletor de identificação. Se você usar um seletor de classe, encontrará problemas porque uma coleção é retornada.

Nicola Peluchetti
fonte
8
Eu estou apenas começando valores indefinidos quando eu usar este ou .prop ()
HorusKol
1
Existe alguma razão para preferir attr ('name') sobre prop ('name')?
dallin
Eu usei $(this).attr('name');em um seletor de classe $('.jobSelect').change(function() {e não encontrei problemas.
Ömer An
14

Para ler uma propriedade de um objeto, você usa .propertyNameou ["propertyName"]notação.

Isso não é diferente para elementos.

var name = $('#item')[0].name;
var name = $('#item')[0]["name"];

Se você deseja usar jQuerymétodos especificamente , use o .prop()método

var name = $('#item').prop('name');

Observe que atributos e propriedades não são necessariamente os mesmos.

user1106925
fonte
eu acho que prop()é para propriedades booleanas gosto checkednão para atributos
Nicola Peluchetti
2
@NicolaPeluchetti: .prop()é para qualquer propriedade no elemento DOM. .attr()é um método muito confuso que mudou seu comportamento entre diferentes releases, às vezes fornecendo a propriedade, outras vezes o atributo. De qualquer maneira, há uma distinção entre atributos e propriedades que devem ser observadas usando o método apropriado.
3
@ NicolaPeluchetti: Aqui está um exemplo que ilustra a distinção entre propriedades e atributos.
10
$('someSelectorForTheElement').attr('name');
Patricia
fonte
você deve usar um seletor id, se você usar um seletor de classe você encontrar problemas, porque uma coleção é devolvido
Nicola Peluchetti
2
id seria mais específico sim, mas sem o html e a completa falta de detalhes na pergunta, é difícil dizer qual seletor eles devem usar.
Patricia
5

Brinque com este exemplo do jsFiddle :

HTML:

<p id="foo" name="bar">Hello, world!</p>

jQuery:

$(function() {
    var name = $('#foo').attr('name');

    alert(name);
    console.log(name);
});

Isso usa o método .attr () do jQuery para obter valor para o primeiro elemento no conjunto correspondente.

Embora não seja especificamente o jQuery, o resultado é mostrado como um prompt de alerta e gravado no console do navegador .

rjb
fonte
3
var name = $('#myElement').attr('name');
Dennis Traub
fonte
0

O método .attr () permite obter o valor do atributo do primeiro elemento em um objeto jQuery:

$('#myelement').attr('name');
Didier Ghys
fonte