код:
<img src="image1.jpg" alt="This is 1 test.">
<img src="image2.jpg" alt="This is 2 test">
код JQuery:
alert($('img')[0].attr('alt'));
почему не выскочит окно, и показывает This is 1 test.
код:
<img src="image1.jpg" alt="This is 1 test.">
<img src="image2.jpg" alt="This is 2 test">
код JQuery:
alert($('img')[0].attr('alt'));
почему не выскочит окно, и показывает This is 1 test.
ответьте на вопрос:
Это не работает, потому что [0]
возвращает собственный DOM-элемент селектора, который не имеет метода .attr()
. Вам нужно использовать .eq(index)
, который в основном извлекает из элементов index
элемент, представленный $()
. Обратите внимание, что $()
возвращает массив -подобный объект, а не массив за себе (таким образом [0]
не работает из коробки)
Вы, вероятно, хотите использовать eq
для этого:
alert($('img').eq(0).attr('alt'));
$("img")[0]
возвращает исходный DOM-элемент. Вы хотите, чтобы объект jQuery обертывал элемент DOM.
$("img").eq(0)
Чтобы получить объект jQuery.
$('img')[0]
возвращает объект HTMLElement, а не объект jquery, поэтому у него нет метода .attr
. Если вы хотите использовать его, вы должны сделать $('img')[0].getAttribute('alt')
.
Или вы все еще хотите объект jquery, Вы можете использовать $('img').first().attr('alt')
.
Нет такой вещи, как 'DOMElement'. (Возможно, вы имели в виду: DOM element?) – Ryan
все время я думал, что у него есть один: s, спасибо @minitech за новые знания :) –
есть способ узнать, что $() возвращает объект, похожий на массив, а не массив. Спасибо. – run