|
|
|
| нужно вывести все изображения, которые содержаться на данной странице. вот код, который отказывается работать:
<script>
function f() {
var listImg = document.getElementsByTagName('img');
for(var i = 0; i < listImg.length; i++){
document.write('<img src="' + listImg[i].src + '" />');
}
}
</script>
<form>
<input type="button" value="show" onClick="f()" />
</form>
|
| |
|
|
|
|
|
|
|
для: unknown09
(24.11.2011 в 22:17)
| |
<script>
function f() {
var listImg = document.getElementsByTagName('img');
for(var i = 0, s = ''; i < listImg.length; i++){
s += '<img src="' + listImg[i].src + '" />';
}
document.write(s);
}
</script>
<form>
<input type="button" value="show" onClick="f()" />
</form>
|
Один и тот же метод document.write () используется:
1) либо для ДОписывания чего-либо на странице.
2) либо для ПЕРЕписывания ВСЕГО содержимого страницы.
В первом случае (для ДОписывания) этот метод работает на этапе формирования документа.
Во втором случае (для ПЕРЕписывания) этот метод работает на уже сформированном документе.
В вашем случае документ уже сформирован (коллекцией getElementsByTagName () можно пользоваться только тогда, когда все элементы этой коллекции уже есть на странице).
Всякое использование метода document.write () на сформированном документе уничтожает ВСЁ, что написано на странице. Включая ВСЕ скрипты.
И в том числе и скрипт, в котором этот метод используется.
Отсюда - использовать в цикле метод document.write () на уже сформированном документе НЕЛЬЗЯ, не получается это. Потому как сам цикл исчезнет после первого же использования метода document.write (). | |
|
|
|