Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: JavaScript replaceChild для ВСЕХ элементов страницы?
цитата
09/07/11 в 17:55
 Vyacheslav
Не могу понять, почему такая конструкция обрабатывает только первое изображение документа. Как заставить произвести замену всех элементов с id="imagescr"?
Код:

    <div class="epicont">
      <div><img src="/images/360x202/2.jpg" id="imagescr"></div>
      <div><img src="/images/360x202/3.jpg" id="imagescr"></div>
      <div><img src="/images/360x202/4.jpg" id="imagescr"></div>
    </div>
    <div class="epicont">
      <div><img src="/images/360x202/2.jpg" id="imagescr"></div>
    <div class="epicont">
    </div>
      <div><img src="/images/360x202/3.jpg" id="imagescr"></div>
    <div class="epicont">
    </div>
      <div><img src="/images/360x202/4.jpg" id="imagescr"></div>
    </div>

   <script type="text/javascript">
      var newElement = document.getElementById('imagescr');
      newElement.src = newElement.src.replace('360x202', '290x156');
      var oldElement = document.getElementById('imagescr');
      var parentDiv = oldElement.parentNode;
      parentDiv.replaceChild(newElement, oldElement);
   </script>
цитата
09/07/11 в 18:43
 Sterx
ну как бэ Id уникален
а class нет ..
цитата
09/07/11 в 19:02
 Vyacheslav
Т.е. так?
Код:

    <div class="epicont">
      <div><img src="/images/360x202/2.jpg" class="imagescr"></div>
      <div><img src="/images/360x202/3.jpg" class="imagescr"></div>
      <div><img src="/images/360x202/4.jpg" class="imagescr"></div>
    </div>
    <div class="epicont">
      <div><img src="/images/360x202/2.jpg" class="imagescr"></div>
    <div class="epicont">
    </div>
      <div><img src="/images/360x202/3.jpg" class="imagescr"></div>
    <div class="epicont">
    </div>
      <div><img src="/images/360x202/4.jpg" class="imagescr"></div>
    </div>

   <script type="text/javascript">
      var newElement = document.getElementsByClassName('imagescr');
      newElement.src = newElement.src.replace('360x202', '290x156');
      var oldElement = document.getElementsByClassName('imagescr');
      var parentDiv = oldElement.parentNode;
      parentDiv.replaceChild(newElement, oldElement);
   </script>


Так тоже не сработало..
цитата
09/07/11 в 20:26
 Vyacheslav
Кто шарит в JS, можете помочь с кодом?
Задача в том, чтоб на лету заменить у img часть src.
цитата
09/07/11 в 21:16
 LeadFarmer

писать зачем на чистом js? подойдет код на jQuery или возражения против него есть? (некоторые ну очень не любят подключения библиотеки аж в 60 кб весом)
цитата
09/07/11 в 21:55
 Sterx
Код:

<script type="text/javascript">
$('.your_class').attr('src','newPath');
</script>

цитата
09/07/11 в 22:35
 Vyacheslav
Я обожаю JQuery! Он как раз должен быть включен в этот документ.
Какой код будет на jQuery?
Sterx: не сработало.. Это jQuery?
цитата
09/07/11 в 22:36
 webboxxx
Vyacheslav писал:

Так тоже не сработало..


потому что document.getElementsByClassName возвращает массив элементов. надо пройтись по нему в цикле.
цитата
09/07/11 в 22:39
 webboxxx
Код:
$('img.imagescr').each(function(){
   $(this).attr('src', $(this).attr('src').replace('360x202', '290x156'));
})
цитата
09/07/11 в 22:49
 Vyacheslav
Сенкс!
цитата
09/07/11 в 22:53
 Vyacheslav
Только ещё маленький вопросик!
Как такие функции находить в документации JQuery?
цитата
09/07/11 в 23:10
 webboxxx
а в чем проблема? там же по категориям все разбито. а что не получается найти - гуглится через "jquery сделать что-то там"
цитата
10/07/11 в 03:14
 freeek
JQ API в удобном формате


Эта страница в полной версии