Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 10.09.2021, 08:53
Аспирант
Отправить личное сообщение для Alexander3928 Посмотреть профиль Найти все сообщения от Alexander3928
 
Регистрация: 19.05.2021
Сообщений: 75

Цитата:
второй через родителей и детей. Мы у родителя нажатой кнопки берем элемент img. Данный пример универсален
Код:
e.target.parentElement.querySelector("img")
Я так и делаю, использую классы.
Я бы уже не писал но если я так делаю через классы и вытаскиваю не одник элемент с таким классом, а все оно жалуется что Cannot read property 'setAttribute' of null и я не понимаю в чем проблема

Код:
<button class="button">GO-1
<img class="image" src="URL адрес">
</button>
<button class="button">
<img class="image" src="URL адрес">GO-2
</button>
const butt = document.querySelectorAll(".button")

butt.forEach((e) => {
    e.addEventListener("click", (e) => urlImage(e))
})

function urlImage(e) {
    e.target.parentElement.querySelectorAll(".image").setAttribute('src',"http://www.kenwalger.com/twitter_cards/mongodb-atlas.png")
}

Последний раз редактировалось Alexander3928, 10.09.2021 в 09:12.
Ответить с цитированием
  #12 (permalink)  
Старый 10.09.2021, 11:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Alexander3928
querySelectorAll(".image")
у списка элементов нет setAttribute, нужен цикл по каждому из списка.
Ответить с цитированием
  #13 (permalink)  
Старый 10.09.2021, 12:29
Аспирант
Отправить личное сообщение для Alexander3928 Посмотреть профиль Найти все сообщения от Alexander3928
 
Регистрация: 19.05.2021
Сообщений: 75

Сообщение от рони Посмотреть сообщение
у списка элементов нет setAttribute, нужен цикл по каждому из списка.
Предлагает создать массив из разных url адресов на разные картинки и и обернуть
e.target.parentElement.querySelector("img").setAttribute('src',"http://www.kenwalger.com/twitter_cards/mongodb-atlas.png")
циклом for? Или как, я просто не могу понять идею, как это реализовать, то что вы сказали
Ответить с цитированием
  #14 (permalink)  
Старый 10.09.2021, 12:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Alexander3928,
знать бы ещё, что вы хотите сделать...

[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #15 (permalink)  
Старый 10.09.2021, 17:38
Аспирант
Отправить личное сообщение для Alexander3928 Посмотреть профиль Найти все сообщения от Alexander3928
 
Регистрация: 19.05.2021
Сообщений: 75

рони

Сообщение от рони Посмотреть сообщение
Alexander3928,
знать бы ещё, что вы хотите сделать...

<div class="main-box">
       <div class="box">
              <button class="button" id="buttId_1">GO-1</button>
       </div>
       <div class="box">
              <img src="URL адрес" class="image">
              <img src="URL адрес" class="image">
              <img src="URL адрес" class="image">
       </div>
</div>


const arr_url [
  ["URL адрес"],
  ["URL адрес"],
  ["URL адрес"],
]

const butt = document.querySelectorAll(".button")
const main_box = document.querySelectorAll(".main-box")

main_box.forEach((e) => {
    e.addEventListener("click", (e) => urlImage(e))
})

function urlImage(e) {
  if (e.target.id === "buttId_1") {
    for(let e of arr_url) {
 e.target.parentElement.querySelector(".image").setAttribute('src',"http://www.kenwalger.com/twitter_cards/mongodb-atlas.png")
    }
  }


я вещаю событие на общего родителя, ну и мне нужно когда на кнопку button нажимаю тогда меняются все 3 картинки на другие. Я вот написал, но код не наработает. Помогите пожалуйста
Ответить с цитированием
  #16 (permalink)  
Старый 10.09.2021, 20:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Alexander3928,
<!DOCTYPE html>
<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
    </style>
    <script>
        document.addEventListener("DOMContentLoaded", function() {
            const arr_url = [
                ["https://picsum.photos/300/100?4"],
                ["https://picsum.photos/300/100?5"],
                ["https://picsum.photos/300/100?6"]
            ];
            const main_box = document.querySelectorAll(".main-box");
            main_box.forEach(box => box.addEventListener("click", urlImage));

            function urlImage(e) {
                let button = e.target.closest(".button");
                if (button) this.querySelectorAll(".image").forEach((img, i) => img.src = arr_url[i]);
            };
        });
    </script>
</head>

<body>
    <div class="main-box">
        <div class="box">
            <button class="button">GO-1</button>
        </div>
        <div class="box">
            <img src="https://picsum.photos/300/100?1" class="image">
            <img src="https://picsum.photos/300/100?2" class="image">
            <img src="https://picsum.photos/300/100?3" class="image">
        </div>
    </div>
</body>

</html>

Последний раз редактировалось рони, 10.09.2021 в 20:22.
Ответить с цитированием
  #17 (permalink)  
Старый 10.09.2021, 22:13
Аспирант
Отправить личное сообщение для Alexander3928 Посмотреть профиль Найти все сообщения от Alexander3928
 
Регистрация: 19.05.2021
Сообщений: 75

Спасибо очень выручил
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
изменение цвета при клике apol775 jQuery 30 29.11.2015 17:05
При клике поменять местами картинки Low_Weaper Элементы интерфейса 2 16.11.2015 16:09
Изменение цвета заливки у SVG картинки при наведении мыши? akkond Общие вопросы Javascript 2 15.04.2014 13:04
Изменение прозрачности при клике AJIUK jQuery 8 09.03.2014 16:00
Изменение параметров картинки при помощи Javascript multimax Элементы интерфейса 6 07.06.2011 08:43