Jak uzyskać nazwę elementu za pomocą jQuery?

133

Jak uzyskać właściwość name elementu HTML za pomocą jQuery?

Poonam Bhatt
źródło
trochę html lub nawet trochę więcej informacji o elemencie, którego nazwę chcesz, pomogłoby nam udzielić bardziej szczegółowej odpowiedzi.
Patricia
4
Służy .prop()do pobierania właściwości i .attr()atrybutów. Nie używaj .attr()nieruchomości, jak wszyscy sugerują. Pracujemy tutaj z JavaScriptem, a nie ze znacznikami HTML.
11
To powinno zostać ponownie otwarte. Asker powinien zostać nagrodzony za dotarcie do sedna sprawy i niepodawanie czegoś w stylu „Mam tę witrynę internetową, na której ...”
cantera
@ cantera25: dzięki za wskazanie tego ...
Poonam Bhatt

Odpowiedzi:

229

Powinieneś używać w attr('name')ten sposób

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

Powinieneś użyć selektora id, jeśli używasz selektora klasy, napotkasz problemy, ponieważ zwracana jest kolekcja

Nicola Peluchetti
źródło
9
Po prostu otrzymuję niezdefiniowane wartości, kiedy używam tego lub .prop ()
HorusKol
1
Czy jest jakiś powód, aby preferować attr („name”) zamiast prop („name”)?
dallin
Użyłem $(this).attr('name');na selektorze klas $('.jobSelect').change(function() {i nie napotkałem problemów.
Ömer An
14

Aby odczytać właściwość obiektu, którego używasz, .propertyNamelub ["propertyName"]notację.

Nie inaczej jest w przypadku elementów.

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

Jeśli chcesz użyć jQuerymetod, użyj .prop()metody.

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

Należy pamiętać, że atrybuty i właściwości niekoniecznie są takie same.

user1106925
źródło
myślę, że prop()dotyczy właściwości logicznych, takich jak checkednie dla atrybutów
Nicola Peluchetti
2
@NicolaPeluchetti: .prop()dotyczy dowolnej właściwości elementu DOM. .attr()jest bardzo zagmatwaną metodą, która zmieniała swoje zachowanie między różnymi wersjami, czasami dając ci właściwość, innym razem atrybut. Tak czy inaczej, istnieje rozróżnienie między atrybutami a właściwościami, które należy obserwować, stosując odpowiednią metodę.
3
@NicolaPeluchetti: Oto przykład, który ilustruje różnicę między właściwościami a atrybutami.
10
$('someSelectorForTheElement').attr('name');
Patrycja
źródło
powinieneś użyć selektora identyfikatora, jeśli używasz selektora klas, napotkasz problemy, ponieważ kolekcja jest zwracana
Nicola Peluchetti
2
id byłby najbardziej konkretny, tak, ale bez ich html i całkowitego braku szczegółów w pytaniu, trudno powiedzieć, jakiego selektora powinni użyć.
Patricia,
6

Pobaw się tym przykładem jsFiddle :

HTML:

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

jQuery:

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

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

Wykorzystuje metodę .attr () jQuery do pobrania wartości dla pierwszego elementu w dopasowanym zestawie.

Chociaż nie jest to konkretnie jQuery, wynik jest wyświetlany jako monit alertu i zapisywany w konsoli przeglądarki .

rjb
źródło
3
var name = $('#myElement').attr('name');
Dennis Traub
źródło
0

Metoda .attr () pozwala na pobranie wartości atrybutu pierwszego elementu w obiekcie jQuery:

$('#myelement').attr('name');
Didier Ghys
źródło