2012-01-13 11 views
92

Come posso ottenere la proprietà name dell'elemento HTML con jQuery?Come posso ottenere il nome dell'elemento con jQuery?

+0

un po 'di html o anche un po' più di informazioni sull'elemento che vuoi il nome ci aiuterebbe a darti una risposta più specifica. – Patricia

+3

Usa '.prop()' per ottenere le proprietà, e '.attr()' per ottenere gli attributi. Non usare '.attr()' per ottenere una proprietà come tutti suggeriscono. Qui stiamo lavorando con JavaScript, non con il markup HTML. –

+10

Questo dovrebbe essere riaperto. Asker dovrebbe essere ricompensato per essere arrivato al punto e non aver preceduto con qualcosa come "Ho questo sito web dove ..." – cantera

risposta

150

Si dovrebbe usare attr('name') come questo

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

si dovrebbe usare un selettore id, se si utilizza un selettore di classe di problemi, perché una raccolta viene restituito

+6

Ho appena ricevuto valori non definiti quando utilizzo questo o .prop() – HorusKol

+1

C'è qualche motivo per preferire attr ('name') su prop ('name')? – dallin

9
$('someSelectorForTheElement').attr('name'); 
+0

dovresti usare un selettore di id, se usi un selettore di classe si incontrano problemi perché una collezione viene restituita. L'ID –

+1

sarebbe più specifico sì, ma senza il loro html e la completa mancanza di dettagli nella domanda, è difficile dire quale selettore dovrebbero usare. – Patricia

2
var name = $('#myElement').attr('name'); 
7

Per leggere una proprietà di un oggetto che si utilizza la notazione .propertyName o ["propertyName"].

Questo non è diverso per gli elementi.

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

Se si desidera utilizzare specificamente jQuery metodi, allora devi usare il metodo .prop().

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

Si prega di notare che gli attributi e le proprietà non sono necessariamente la stessa cosa.

+0

penso che 'prop()' sia per le proprietà booleane come 'checked' non per gli attributi –

+2

@NicolaPeluchetti:' .prop() 'è per qualsiasi proprietà sull'elemento DOM. '.attr()' è un metodo molto confuso che ha cambiato il suo comportamento tra diverse versioni, a volte dandoti la proprietà, altre volte l'attributo. Ad ogni modo, c'è una distinzione tra attributi e proprietà che dovrebbero essere osservati usando il metodo corretto. –

+2

@NicolaPeluchetti: [Ecco un esempio] (http://jsfiddle.net/u35MG/) che illustra la distinzione tra proprietà e attributi. –

0

Il metodo .attr() permette di ottenere valore di attributo del primo elemento in un oggetto jQuery:

$('#myelement').attr('name'); 
1

Giocare con questo jsFiddle example:

HTML:

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

jQuery:

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

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

Questo metodo utilizza jQuery .attr() per ottenere il valore del primo elemento del gruppo appaiato.

Sebbene non sia specificamente jQuery, il risultato viene visualizzato come alert prompt e scritto nel browser console.

Problemi correlati