Javascript: включить кнопки на флажке 'check (оба с ElementsByClass)

У меня на самом деле довольно простой вопрос, но я пробовал уже два дня, и я просто не нашел ответа, который мне нужен, или, может быть, я просто этого не понимаю.

Это моя проблема: у меня есть две строки в таблице:

  1. row checkbox

  2. строка <input type = "checkbox" class = "isaimed" name = "attr_targeted_checkbox1" > <button type = 'roll' class = "isroll" disabled = "true" >

Я хочу, чтобы имя getElementsByClassName было включено, если флажок в той же строке включен. Изображение для лучшего понимания

var buttons = document.getElementsByClassName('isroll')
var keyselects = document.getElementsByClassName('isaimed');

for (var i = 0; i < keyselects.length; i++) {
    if (keyselects[i].checked == true) {
        buttons[i].disabled = false;
        break;
    }
}

Я использую классы и спотыкаюсь, addEventListenerи факт, что вы получаете массив / узел объектов. Я попробовал что-то вроде этого:

input

и как 20 других кодовых страниц и функций, которые я нашел в Интернете, но он не работает. Может быть, мне нужно назначить строки или что-то в этом роде? На самом деле, я совершенно отчаянна, и мой ум полон кусков прямо сейчас.

Большое спасибо за Вашу помощь!

играть на скрипке

javascript,html,button,checkbox,getelementsbyclassname,

0

Ответов: 1


Вам нужно добавить, чтобы ваш обнаружил, когда на них нажимают.var inputs = document.getElementsByClassName('isaimed'); for (var i = 0; i < inputs.length; i++) { inputs[i].addEventListener('click', function() { if (this.checked) { this.nextElementSibling.removeAttribute("disabled"); // or this.nextElementSibling.disabled = false; return; } this.nextElementSibling.setAttribute("disabled", "disabled"); // or this.nextElementSibling.disabled = true; }) }input

Затем, с , вы получаете и можете переключать свое состояние.<div> <input type="checkbox" class="isaimed" name="attr_targeted_checkbox1"> <button type='roll' class="isroll" disabled="true">Button</button> </div> <div> <input type="checkbox" class="isaimed" name="attr_targeted_checkbox1"> <button type='roll' class="isroll" disabled="true">Button</button> </div> <div> <input type="checkbox" class="isaimed" name="attr_targeted_checkbox1"> <button type='roll' class="isroll" disabled="true">Button</button> </div>button

Фрагмент стека

input
button


Обновлен после редактирования вопроса

В вашей скрипке inputи buttonне являются братьями и сестрами, так что вот обновление, которое будет работать для вашей скриптовой версии

if (this.checked) {
  this.parentElement.nextElementSibling.children[0].disabled = false;
  return;
}
this.parentElement.nextElementSibling.children[0].disabled = true;
JavaScript, HTML, кнопка, флажок, getelementsbyclassname,
Похожие вопросы