Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Проверяем на пустоту src (https://javascript.ru/forum/events/54289-proveryaem-na-pustotu-src.html)

Andrey Kovalchuk 12.03.2015 07:14

Проверяем на пустоту src
 
Дано:
  • 4 элемента типа img с атрибутом src.
  • N элементов имеют заполненный src атрибут, а у M элементов атрибут пустой.
  • Помимо этих элементов присутствуют и другие элементы типа img, вложенные в другие div-ы.

Цель: написать функцию, которая находила бы элемент img, в нужном блоке, с пустым атрибутом src и вставляла в него пользовательское значение.

JQ или без JQ - Не особо важно.

Не могу сообразить, как это сделать.

Годный алгоритм = ответ.

laimas 12.03.2015 07:35

alert($('img[src=""]').length)

Andrey Kovalchuk 12.03.2015 07:43

Цитата:

Сообщение от laimas (Сообщение 360833)
alert($('img[src=""]').length)

А как теперь его на определенный блок натравить? $() вроде же всю страницу обрабатывает?

laimas 12.03.2015 07:46

Указать определенный блок:

<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script> 
$(function() {
    //найти пустые изоборажения в div по id 
    $('#n').find('img[src=""]').each(function() {
        //this - текщее пустое изображение, чего-то с ним делаем
        this.src = 'name.gif' 
    })
});
</script>     
</head> 
<body>
<div id="n">
    <img src="name.jpg" />
    <img src="" />
    <img src="" />
</div>
</body> 
</html>

Andrey Kovalchuk 12.03.2015 07:49

$('#n').find('img[src=""]')


Вот, что нужно! Благодарен.

danik.js 12.03.2015 09:46

Тема уже обсуждалась. Походу Andrey Kovalchuk не подозревает что пустой атрибут != пустой src картинки.

Пустой атрибут резолвится в текущий адрес страницы, и браузер делает http-запрос, по которому получает html-код. Глупо предоставлять браузеру html код в качестве картинки, правда? Ну только дибил так будет делать, правда?

danik.js 12.03.2015 09:54

Потестил в общем в браузерах. Походу так только в Firefox происходит:

ruslan_mart 12.03.2015 18:48

Проще на CSS тогда:

img[src=""] {
    background: url('bla.gif');
    border: none;
    height: 20px;
    width: 20px;
}


Но изврат конечно. :(


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