<div id="test"></div>
<script>
$(document).ready(function() {
alert($('#test').id);
});
</script>
Почему вышеперечисленное не работает, и как мне это сделать?
jquery
jquery-selectors
fearofawhackplanet
источник
источник
Ответы:
JQuery способ:
В вашем примере:
Или через DOM:
или даже :
и причина использования
$('#test').get(0)
в JQuery или даже в$('#test')[0]
том, что$('#test')
это селектор JQuery и возвращает array () результатов, а не один элемент, по умолчаниюальтернатива для селектора DOM в jquery
который отличается от
.attr()
и$('#test').prop('foo')
захватывает указанноеfoo
свойство DOM , а$('#test').attr('foo')
захватывает указанныйfoo
атрибут HTML, и вы можете найти более подробную информацию о различиях здесь .источник
$('#test').id()
.$('selector').attr('id')
вернет идентификатор первого соответствующего элемента. Ссылка .Если ваш совпавший набор содержит более одного элемента, вы можете использовать обычный
.each
итератор для возврата массива, содержащего каждый из идентификаторов:Или, если вы хотите стать немного более грубым, вы можете избежать оболочки и использовать
.map
ярлык .источник
retval.push($(this).attr('id'))
можно написатьretval.push(this.id)
return $('.selector').map(function(i, dom){ return $(dom).attr('data-id'); })
id
является свойством HTMLElement
. Однако, когда вы пишете$("#something")
, он возвращает объект jQuery, который оборачивает соответствующий элемент (ы) DOM. Чтобы вернуть первый соответствующий элемент DOM, позвонитеget(0)
Для этого нативного элемента вы можете вызвать id или любое другое нативное свойство или функцию DOM.
Вот почему
id
не работает в вашем коде.В качестве альтернативы используйте
attr
метод jQuery, поскольку другие ответы предлагают получитьid
атрибут первого соответствующего элемента.источник
Приведенные выше ответы хороши, но по мере развития jquery ... вы также можете сделать:
источник
attr()
был добавлен в 1.0, иprop()
был добавлен в 1.6, поэтому я предполагаю, что ваш комментарийprop()
- это новый способ.attr
) или в том, что потенциально может быть изменено script (prop
). Если вы на самом деле не изменяетеid
атрибут какого-либо элемента, используя скрипт на стороне клиента, тоprop
иattr
идентичны.Некоторый проверочный код требуется, конечно, но легко реализуется!
источник
.id
не является допустимой функцией jquery. Вам нужно использовать.attr()
функцию для доступа к атрибутам, которыми обладает элемент. Вы можете использовать.attr()
оба, чтобы изменить значение атрибута, указав два параметра, или получить значение, указав один.http://api.jquery.com/attr/
источник
Если вы хотите получить идентификатор элемента, скажем, с помощью селектора классов, когда событие (в данном случае событие click) было запущено для этого конкретного элемента, то следующее будет делать эту работу:
источник
$('#test').attr('id')
В вашем примере:источник
Что ж, похоже, решения не было, и я хотел бы предложить собственное решение, которое является расширением прототипа JQuery. Я поместил это в файл Helper, который загружается после библиотеки JQuery, поэтому проверка для
window.jQuery
Это может быть не идеально, но это может быть начало для включения в библиотеку JQuery.
Возвращает либо одно строковое значение, либо массив строковых значений. Массив строковых значений, для события использовался многоэлементный селектор.
источник
$('#test')
возвращает объект jQuery, поэтому вы не можете просто использоватьobject.id
егоId
вам нужно использовать
$('#test').attr('id')
, который возвращает требуемыйID
элементЭто также можно сделать следующим образом,
$('#test').get(0).id
который равенdocument.getElementById('test').id
источник
$('#test')[0].id
который такой же, как.get(0)
Может быть полезно для других, которые находят эту тему. Код ниже будет работать, только если вы уже используете jQuery. Функция всегда возвращает идентификатор. Если элемент не имеет идентификатора, функция генерирует идентификатор и добавляет его к элементу.
Как пользоваться:
источник
Используя приведенный выше код, вы можете получить идентификатор.
источник
Это старый вопрос, но с 2015 года это может сработать:
И вы также можете делать задания:
Пока вы определяете следующий плагин JQuery:
Интересно, что если
element
это элемент DOM, то:источник
Поскольку id является атрибутом, вы можете получить его с помощью
attr
метода.источник
Это может быть идентификатор элемента, класс или автоматически, используя даже
источник
Важно: если вы создаете новый объект с помощью jQuery и связываете событие, вы ДОЛЖНЫ использовать prop, а не attr , например так:
$("<div/>",{ id: "yourId", class: "yourClass", html: "<span></span>" }).on("click", function(e) { alert($(this).prop("id")); }).appendTo("#something");
источник
Это наконец решит ваши проблемы:
Допустим, у вас есть много кнопок на странице, и вы хотите изменить одну из них с помощью jQuery Ajax (или не ajax) в зависимости от их идентификатора.
также скажем, что у вас есть много разных типов кнопок (для форм, для утверждения и для аналогичных целей), и вы хотите, чтобы jQuery обрабатывал только «похожие» кнопки.
Вот код, который работает: jQuery будет обрабатывать только кнопки класса .cls-hlpb, он получит идентификатор кнопки, на которую нажали, и изменит его в соответствии с данными, полученными из ajax.
код был взят из w3schools и изменен.
источник
источник
он не отвечает на OP, но может быть интересен другим: вы можете получить доступ к
.id
полю в этом случае:источник