Массив в массиве
Это мой первый код "с нуля". Пытаюсь разобраться как что должно работать и на определенном этапе возник тупик.
Итак, есть массив из div.class в каждом из них содержатся теги img. Задача перебрать в каждом див все img и найти среди них с расширением gif Просто img во всем документе я перебрала успешно. Код работал
var mas=document.getElementsByTagName('img');
for(i=0; i<mas.length;i++)
{
ext=mas[i].src.split(".").pop();
if(ext=="gif"){
mas[i].src="http://forumavatars.ru/img/avatars/0014/21/71/4-1403302678.png";
}
};
Теперь пытаюсь задать перебор только в конкретных div Пробовала разные коды, не срабатывает
var mas2=document.getElementsByClassName("container");
var mas=document.getElementsByTagName('img');
for (j=0;j<mas2.length;j++){
for(i=0; i<mas.length;i++)
{
ext=mas[i].src.split(".").pop();
if(ext=="gif"){
mas2[j].mas[i].src="http://forumavatars.ru/img/avatars/0014/21/71/4-1403302678.png"; }
}
}
Что не правильно делаю? |
Bicou,
var mas2 = document.getElementsByClassName("container"),
j, i, ext;
for (j = 0; j < mas2.length; j++) {
var mas = mas2[j].getElementsByTagName("img");
for (i = 0; i < mas.length; i++) {
ext = mas[i].src.split(".").pop();
if (ext == "gif") mas[i].src = "http://forumavatars.ru/img/avatars/0014/21/71/4-1403302678.png"
}
};
|
Спасибо!
Так пробовала. но почему-то не получилось. Может быть что-то с ошибкой написала. Хотя в консоли ничего не выводилось. Пошла разбираться. Спасибо |
<html>
<head>
<style>
</style>
</head>
<body>
<div class="container">
<img src="1.gif" alt="">
<img src="1.png" alt="">
<img src="2.gif" alt="">
<img src="2.png" alt="">
</div>
<script>
[].forEach.call(document.querySelectorAll('.container img[src$=".gif"]'), function (el){
el.src = 'http://forumavatars.ru/img/avatars/0014/21/71/4-1403302678.png';
});
</script>
</body>
</html>
можно проще |
<html>
<head>
<style>
</style>
</head>
<body>
<div class="container">
<img src="1.gif" alt="">
<img src="1.png" alt="">
<img src="2.gif" alt="">
<img src="2.png" alt="">
</div>
<script>
document.querySelectorAll('.container img[src$=".gif"]').forEach(el => el.src = 'http://forumavatars.ru/img/avatars/0014/21/71/4-1403302678.png');
</script>
</body>
</html>
для современных браузеров |
j0hnik, спасибо
|
Цитата:
|
и опера и сафари уже поддерживают
https://caniuse.com/#search=arrow не на то акцент делаете, такая конструкция document.querySelectorAll(el).forEach имеет меньшую поддержку чем стрелки. |
Цитата:
|
| Часовой пояс GMT +3, время: 04:40. |