BadassRolf
@BadassRolf

Как сделать так, чтобы это работало с Class?

Есть вот такой код калькулятора.
function calc() {
            var is_html = document.getElementsByClassName("is_html"); 
            var result = document.getElementById("result");

            var price = 0;
            price += (is_html.checked == true) ? parseInt(is_html.value) : 0;
            price ;

            result.innerHTML = price;
        }

И вот так верстка
<input type="checkbox" onchange="calc()" value="3000" class="is_html" /> 
        <input type="checkbox" onchange="calc()" value="3000" class="is_html" /> 
        <br/>
        <div>Сумма: <span id="result">0</span> рублей</div>


Но он почему-то не считает. В js Новичок. Дайте хоть подсказку что не так. За ранее спасибо.
  • Вопрос задан
  • 156 просмотров
Решения вопроса 2
@lem_prod
ну как минимум document.getElementsByClassName("is_html"); возвращает html-коллекцию

если я правильно понял, должно так работать

function calc() {
    var is_html = document.getElementsByClassName("is_html");
    var result = document.getElementById("result");

    var price = 0;
    for (var i = 0; i < is_html.length; i++) {
        price += is_html[i].checked ? +is_html[i].value : 0;
    }
    result.innerHTML = price;
}
Ответ написан
Комментировать
SnaIP
@SnaIP
Front-end разработчик
var is_html = document.getElementsByClassName("is_html")[0];


https://learn.javascript.ru/searching-elements-dom

var is_html = document.getElementsByClassName("is_html")[1];   Вернёт ваш второй checkbox


Почитайте про getElementsByClassName
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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