Как я могу получить имя элемента с помощью jQuery?

130

Как я могу получить свойство name элемента HTML с помощью jQuery?

Пунам Бхатт
источник
Немного html или даже немного дополнительной информации об элементе, имя которого вы хотите назвать, поможет нам дать вам более конкретный ответ.
Patricia
4
Используйте .prop()для получения свойств и .attr()для получения атрибутов. Не используйте .attr()для получения собственности, как все предлагают. Здесь мы работаем с JavaScript, а не с разметкой HTML.
11
Это должно быть вновь открыто. Спрашивающий должен быть вознагражден за то, что
добрался
@ cantera25: спасибо, что указали на это ..
Пунам Бхатт

Ответы:

221

Вы должны использовать attr('name')это

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

вы должны использовать селектор идентификаторов, если вы используете селектор классов, вы столкнетесь с проблемами, потому что возвращается коллекция

Никола Пелучетти
источник
8
Я просто получаю неопределенные значения, когда использую это или .prop ()
HorusKol
1
Есть ли причина предпочесть attr ('name') над prop ('name')?
dallin
Я использовал $(this).attr('name');селектор классов, $('.jobSelect').change(function() {и у меня не было проблем.
Ömer An
14

Чтобы прочитать свойство объекта, которое вы используете .propertyNameили ["propertyName"]обозначение.

Для элементов это не исключение.

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

Если вы специально хотите использовать jQueryметоды, вы должны использовать .prop()метод.

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

Обратите внимание, что атрибуты и свойства не обязательно совпадают.

user1106925
источник
я думаю, что prop()это для логических свойств, а checkedне для атрибутов
Никола Пелучетти
2
@NicolaPeluchetti: .prop()для любого свойства в элементе DOM. .attr()- это очень запутанный метод, который менял свое поведение между разными выпусками, иногда давая вам свойство, а иногда атрибут. В любом случае, существует различие между атрибутами и свойствами, которые следует соблюдать с помощью соответствующего метода.
3
@NicolaPeluchetti: Вот пример , демонстрирующий различие между свойствами и атрибутами.
10
$('someSelectorForTheElement').attr('name');
Патриция
источник
вам следует использовать селектор идентификаторов, если вы используете селектор классов, вы столкнетесь с проблемами из-за возврата коллекции
Никола Пелучетти,
2
id было бы наиболее конкретным, да, но без их html и полного отсутствия деталей в вопросе трудно сказать, какой селектор им следует использовать.
Патрисия
5

Поиграйте с этим примером jsFiddle :

HTML:

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

JQuery:

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

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

Это использует jQuery .attr () метод для получения значения для первого элемента в согласованном наборе.

Хотя это и не является конкретно jQuery, результат отображается как предупреждение и записывается в консоль браузера .

rjb
источник
3
var name = $('#myElement').attr('name');
Деннис Трауб
источник
0

Метод .attr () позволяет получить значение атрибута первого элемента в объекте jQuery:

$('#myelement').attr('name');
Дидье Гис
источник