Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   получить значения всех картинок (https://javascript.ru/forum/events/33675-poluchit-znacheniya-vsekh-kartinok.html)

floa 03.12.2012 02:21

получить значения всех картинок
 
Здравствуйте.
у меня есть список
<ul class="photos-list" id="photos-list">    
     <li><span><img src="image/1.jpg"></span></li>
     <li><span><img src="image/2.jpg"></span></li>
     <li><span><img src="image/3.jpg"></span></li>
</ul>


мне надо пройтись по всем картинкам и записать значения "src" например в массив. не пойму как мне добраться до этого атрибута

danik.js 03.12.2012 02:55

var images = document.querySelectorAll('#photos-list img');

var array = [];
for (var i; i < images.length; i++)
{
    array[i] = images[i].src;
}


Не будет работать в IE7. Если нужна его поддержка, заменяем первую строку на
var images = document.getElementById('photos-list').getElementsByTagName('img');

nerv_ 03.12.2012 23:00

че уж там :)
<ul class="photos-list" id="photos-list">    
     <li><span><img src="image/1.jpg"></span></li>
     <li><span><img src="image/2.jpg"></span></li>
     <li><span><img src="image/3.jpg"></span></li>
</ul>
<script>
    var elems = document.getElementsByTagName('img');
    var arr = Array.prototype.map.call( elems, function( img ) {
        return img.src;
    });
    alert( arr.join( '\n' ) );
</script>

danik.js 03.12.2012 23:31

Спасибо nerv_ за пример использования map, но стоит заметить что он из ES5, которого нет в IE8. Но если нужно, то есть конечно ES5-костыльshim


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