Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   replaceChild заменяет только первый элемент (https://javascript.ru/forum/events/18641-replacechild-zamenyaet-tolko-pervyjj-ehlement.html)

Proxytel 09.07.2011 19:44

replaceChild заменяет только первый элемент
 
<div><img src="/pic/20x20/2.jpg" id="picture"></div>
    <div><img src="/pic/20x20/3.jpg" id="picture"></div>
    <div><img src="/pic/20x20/4.jpg" id="picture"></div>

	<script type="text/javascript">
		var NewEL = document.getElementById('picture');
		NewEL.src = NewEL.src.replace('20x20', '10x10');
		var OldEL = document.getElementById('picture');
		var parentDiv = OldEL.parentNode;
		parentDiv.replaceChild(NewEL, OldEL);
	</script>


Подскажите, как сделать так,чтоб заменились все 20x20 на 10x10, а не только первый как в данном примере?

Aetae 09.07.2011 20:06

id - уникальный идентификатор.
Мне кажется надо эт popup'ом всем новозарегистрировавшимся на пол экрана выводитть.))

Proxytel 09.07.2011 20:27

Эх! Поскольку с img class="" и getElementByClassName этот пример не сработал, то мне это мало о чём говорит!

Proxytel 09.07.2011 20:52

Есть ещё идеи?

NoResponse 09.07.2011 21:04

идей у нас полно :)
и как сказал Aetae - id - уникальный идентификатор... используйте class
не получилось потому что нет getElementByClassName, есть getElementsByClassName

Proxytel 09.07.2011 21:07

Не получилось, так как getElementByClassNamе - это массив

Proxytel 09.07.2011 21:13

<div><img src="/pic/20x20/2.jpg" class="picture"></div>
    <div><img src="/pic/20x20/3.jpg" class="picture"></div>
    <div><img src="/pic/20x20/4.jpg" class="picture"></div>

	<script type="text/javascript">
		var NewEL = document.getElementsByClassName('picture');
		NewEL.src = NewEL.src.replace('20x20', '10x10');
		var OldEL = document.getElementsByClassName('picture');
		var parentDiv = OldEL.parentNode;
		parentDiv.replaceChild(NewEL, OldEL);
	</script>


Так не работает.
Тут обязательно цикл применять или можно без него обойтись?

Kolyaj 09.07.2011 21:18

Вы хотите обработать несколько элементов. Как вы думаете, нужен цикл или нет?

Proxytel 09.07.2011 21:25

ну как показывает практика, если у меня 100 элементов вида:
<div id="invisible">1</div>
<div id="invisible">2</div>
<div id="invisible">3</div>
...
<div id="invisible">100</div>

То чтоб сделать невидимыми все 100, то можно обойтись и без цикла. Еслиб не такие колдовства, я бы и не спрашивал про цикл :)

Amphiluke 09.07.2011 21:35

Цитата:

Сообщение от Proxytel
Еслиб не такие колдовства

Это не «колдовства», а терпимость CSS к ошибкам.


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