Задать вопрос
@lowersight
Начинающий фронт-энд программист

Как соединить кнопку в html и элемент объекта?

У меня есть объект, такого вида:
let players = {
  player1: {
    attack: 5,
    defense: 3,
    speed: 5,
    control: 5,
    strike: 5,
    stateOnSat: false
  },
  player2: {
    attack: 3,
    defense: 5,
    speed: 4,
    control: 4,
    strike: 5,
    stateOnSat: false
  },


И так далее, вплоть до большего кол-ва игроков. Так же у меня есть такой код в html:
<li>
          player1
          <button class="fas fa-plus-square btn btn-plus"></button>
          <button class="fas fa-check-square btn btn-check"></button>
          <button class="fas fa-minus-square btn btn-delete"></button>
        </li>
        <li>
          player2
          <button class="fas fa-plus-square btn btn-plus"></button>
          <button class="fas fa-check-square btn btn-check"></button>
          <button class="fas fa-minus-square btn btn-delete"></button>
        </li>


Мне нужно, чтобы при нажатии на кнопку btnPlus (const btnPlus = document.querySelectorAll('.btn-plus');) - статус игрока (stateOnSat) менялся на true. Причем, чтобы менялся статус того игрока, которого мы выбрали нажатием кнопки btnPlus.

Как это сделать?
  • Вопрос задан
  • 78 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@Banan44
Full Stack
const players = {
    player1: {
      attack: 5,
      defense: 3,
      speed: 5,
      control: 5,
      strike: 5,
      stateOnSat: false
    },
    player2: {
      attack: 3,
      defense: 5,
      speed: 4,
      control: 4,
      strike: 5,
      stateOnSat: false
    }
  }

  const btnPlus = document.querySelectorAll('.btn-plus')

  btnPlus[0].onclick = () => {
    players.player1.stateOnSat = true
    alert(players.player1.stateOnSat) // true
  }

  // Или 
  btnPlus[1].addEventListener('click', () => {
    players.player2.stateOnSat = true
  })

Или
<button class="fas fa-plus-square btn btn-plus" onclick="players.player2.stateOnSat = true">Plus</button>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы