jquery: .attr() не работает для дочернего элемента

Я схожу с ума, уставившись на это. Мне нужно изменить атрибут элемента, что я делал много раз раньше. Но это не удается. Теперь я даже не могу получить jquery, чтобы показать мне его атрибут. Связано ли это с тем, что возвращает find()?

var c = new_photo_div.find('[class = photo]')[0];
alert(c);
alert(new_photo_div.attr('class'));
alert(c.attr('class'));

Первое предупреждение правильно идентифицирует элемент: Object HTMLImageElement

Второе предупреждение правильно дает мне класс new_photo_div.

Третье предупреждение не проходит. Нет оповещения

Я думаю, что следует сказать: фото

3 ответа

Решение

Ты используешь new_photo_div.find('[class = photo]')[0] Элемент Dom не является объектом jquery. попробуй это

$(c).attr('class');

Это потому что c не является объектом jQuery. Удалить [0] назначить объект jQuery c,

В консоли вашего браузера произошла бы ошибка,

в любом случае, attr - это метод jQuery, не делайте [0],

Также вы можете использовать.prop вместо.attr, если вы используете более новую библиотеку jquery.

Другие вопросы по тегам