Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Сменить сразу все одинаковые картинки (https://javascript.ru/forum/events/31949-smenit-srazu-vse-odinakovye-kartinki.html)

izcian 27.09.2012 12:01

Сменить сразу все одинаковые картинки
 
Подскажите пожалуйста, а можно сразу сменить все одинаковые картинки, на другую картинку?
По id не получится, поскольку у всех картинок оно разное. Что объединяет их все, это одинаковый src.

Сценарий таков: в функцию прилетает переменная, например close=1;
она и дает команду, но вот как дальше, и можно ли вообще такое?

P.S.блин, кажется не тот раздел форума забил тему(((

bes 27.09.2012 12:24

<img src="">
<img src="a">

<script>
alert(document.querySelectorAll('img').length);
alert(document.querySelectorAll('img[src="a"]').length);
</script>

izcian 27.09.2012 16:42

Это с билиотекой jQuery работает? Блин пока не имел с ней дело...

bes 27.09.2012 17:08

Цитата:

Сообщение от izcian
Это с билиотекой jQuery работает?

пример работает? а подключённой jq не видно

izcian 29.09.2012 11:54

bes я честно сказать у меня почему-то не ищет именно так.А вот так почему-то находит
var elements = document.querySelectorAll('img[src=\"folder_open.png\"]');
 for (var i=0; i<elements.length; i++) {
  alert(elements[i]);}


Но я нашел, другой вариант, но почему-то не работает
var reg=/(folder_open.png)/;
jQuery('div.root_folder').each(function(){
    var src=this.src.replace(reg,"folder.png")
    alert (src);
 })

bes 29.09.2012 13:11

Цитата:

Сообщение от izcian
bes я честно сказать у меня почему-то не ищет именно так.А вот так почему-то находит

так querySelectorAll - это коллекция (живой массив), к каждому элементу обращаются по индексу, поэтому так и надо

Цитата:

Сообщение от izcian
Но я нашел, другой вариант, но почему-то не работает

над всеми div c классом root_folder выполняются действия (изначально вроде картинки были, а не div-ы, про класс речь тоже вроде не шла)

izcian 29.09.2012 13:37

Цитата:

Сообщение от bes (Сообщение 207200)
над всеми div c классом root_folder выполняются действия (изначально вроде картинки были, а не div-ы, про класс речь тоже вроде не шла)

Опс... а я думал я id подставил...А не подскажите как к div обращаться через id?

bes 29.09.2012 13:46

http://jquery-docs.ru/selectors/

cyber 29.09.2012 13:49

Цитата:

Сообщение от bes (Сообщение 207200)
так querySelectorAll - это коллекция (живой массив), к каждому элементу обращаются по индексу, поэтому так и надо


над всеми div c классом root_folder выполняются действия (изначально вроде картинки были, а не div-ы, про класс речь тоже вроде не шла)

че?
Цитата:

Живые — только коллекции, возвращенные методами getElements*. Сказать по правде, это даже не коллекции, а живые запросы, поиск по которым происходит при обращении к i-му элементу (или свойству length). У браузера есть внутреннее кеширование для них, но кеш сбрасывается при изменении документа.

Метод querySelectorAll, напротив, ищет сразу и возвращает статический список, который автоматически не обновляется.

bes 29.09.2012 13:57

круто, querySelectorAll оказывается мёртвый :thanks:


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