Come ottenere un valore di un elemento per nome anziché per ID


111

Come posso ottenere il valore di un elemento per nome invece che per ID, ad esempio se lo uso per id lo sarebbe $('#id').val();


1
cosa intendi con "nome"?
Natrium

3
Ma cosa intendi con "nome"?
kjagiello

6
Penso che significhi <input id = "ID" name = "Name" type = "text" />, cioè usando il nome invece del campo id. Ma forse sto solo parafrasando con un esempio;)
Ed James

Puoi usare qualsiasi selettore CSS lì (almeno non ho incontrato un'eccezione)
muka.gergely

Risposte:


316

Utilizza il selettore dell'attributo name:

$("input[name=nameGoesHere]").val();

3
Si noti inoltre che non è necessario avere il tipo di elemento.
rfunduk

5
+1 per te Nick, perché sei riuscito a capire la domanda.
kjagiello

4
@thenduks: Anche se questo è vero ... il nome si trova solitamente sugli input, e questo rende il selettore molto più veloce.
Nick Craver

solo un aggiornamento a questo. Il metodo fornito da @NickCraver non ha funzionato per me, tuttavia $ (": input [name = nameGoesHere]"). Val () ha funzionato nel mio caso.
Gunnrryy


9

Utilizza il selettore dell'attributo name:

$("input[name='nameGoesHere']").val();

È un requisito obbligatorio includere virgolette attorno al valore, vedere: http://api.jquery.com/attribute-equals-selector/


Volevo solo notare che in alcuni casi (beh almeno il mio), non è necessario inserire la parte "input". Quanto segue sarà sufficiente ---> $ ("[name = 'nameGoesHere']"). Val () ;. Tuttavia, sto lavorando all'interno di un pacchetto Oracle. Stavo guardando questo post come riferimento e non sono riuscito a farlo funzionare a meno che non avessi rimosso "input" dall'istruzione. Nel caso qualcun altro visiti questo post per riferimento e stia lavorando anche con Oracle
user1898629

6

Per ottenere il valore, possiamo utilizzare più attributi, uno dei quali è l' attributo name . Per esempio

$("input[name='nameOfElement']").val();

Possiamo anche usare altri attributi per ottenere valori

HTML

<input type="text" id="demoText" demo="textValue" />

JS

$("[demo='textValue']").val();

1

Funziona bene .. qui btnAddCat è l'ID del pulsante

$('#btnAddCat').click(function(){
        var eventCategory=$("input[name=txtCategory]").val();
        alert(eventCategory);
    });

1
//name directly given
<input type="text" name="MeetingDateFrom">
var meetingDateFrom = $("input[name=MeetingDateFrom]").val();

//Handle name array
<select multiple="multiple" name="Roles[]"></select>
 var selectedValues = $('select[name="Roles[]"] option:selected').map(function() {
    arr.push(this.value);
  });

0
let startDate = $('[name=daterangepicker_start]').val();
alert(startDate);

0

Quale elemento viene utilizzato per la parte con uno sfondo verde? Basta digitare il nome dell'elemento senza i caratteri "<" e ">". Ad esempio, digita P, non <P>se la risposta è l' <P>elemento.


-1

puoi anche usare il nome della classe.

$(".yourclass").val();

La domanda riguarda l'acquisizione di valore utilizzando il nome e non la classe.
newbdeveloper
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.