Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как скрыть img, если src пустой? (https://javascript.ru/forum/events/53059-kak-skryt-img-esli-src-pustojj.html)

Gosha Ponomaryov 19.01.2015 13:03

Как скрыть img, если src пустой?
 
Доброго дня! Такая ситуация - имеется список, структура следующая -

<ul>
<li><a><img src="..."/></a></li>
<li><a><img src="..."/></a></li>
<li><a><img src="..."/></a></li>
<li><a><img src="..."/></a></li>
</ul>

Есть несколько элементов img с пустыми src. Так уж вышло:)
Подскажите, пожалуйста, как правильно задать условие, чтобы скрыть элемент img с пустым src?:help:

Пробовал так

$(document).ready(function() {
if ($("ul > li > a > img").attr('src') == '') {
$("ul > li > a > img").hide();
} else {
$("ul > li > a > img").show();
}
});

Не сработало.

danik.js 19.01.2015 13:11

Цитата:

Сообщение от Gosha Ponomaryov
Есть несколько элементов img с пустыми src. Так уж вышло

Так не должно быть. Дело в том что пустой атрибут src резолвится в URL и делается его запрос. Если допустим страница имеет адрес site.ru/gallery, то будет запрошен ресурс site.ru, и получен в ответ HTML код, но разумеется будет проигнорирован. И так - на каждую картинку. В итоге лишние запросы, лишний трафик, тормоза при загрузке соседних картинок.

Так что вариант тут только один - исправлять.

Gosha Ponomaryov 19.01.2015 13:15

Ок. Спасибо, Исправлю:)

ruslan_mart 19.01.2015 13:58

Gosha Ponomaryov,

CSS:

img[src=""] {
    display: none;
}

рони 19.01.2015 14:49

:write: а в onerror добавить hide

_ZET_ 23.01.2015 16:14

$(document).ready(function() {
$("img null").fadeOut(1);
});

null id пустого изображения

ruslan_mart 23.01.2015 16:28

_ZET_, не знаю, что ты этим хочешь сказать, но в твоём случае будут скрыты все тэги <null> внутри изображений, что невозможно, так как <img> не может иметь содержимого внутри себя.

Возможно, ты имел ввиду это: img#null, но тогда придётся давать ID null каждому изображению, что не очень логично, ведь ID уникален. Так что, лучше использовать класс: img.null.

Но это всё не имеет смысла, если указывать alt="", то пустое изображение и так будет скрыто.

danik.js 23.01.2015 17:36

Изображениие не может быть пустым. Точка. Остальные варианты даже не стоит и рассматривать :)


Часовой пояс GMT +3, время: 15:37.