#javascript #html #css
#javascript #HTML #css
Вопрос:
Я не уверен, почему это поле не обновляется с правильным номером. Стоит отметить, что по какой-то причине любое число <1 округляется в функции alert(). Я думаю, что все числа просто округляются в меньшую сторону, но я не знаю другого способа получить значение, которое этого не сделает? Есть предложения?
фактическое значение = 0.03
var citrullineChoice = document.getElementById("citrulline").getElementsByClassName("on")[0].value;
предупреждение возвращает 0
фактическое значение = 0.03
var tyrosineChoice = document.getElementById("tyrosine").getElementsByClassName("on")[0].value;
предупреждение возвращает 1
Комментарии:
1. В вашем примере кода вы используете jQuery. Есть ли какая-либо причина, по которой вы не используете jQuery для получения значения?
2. @Kolby, энтузиасты скорости и производительности ;). OP может использовать движок SizzleJS.
3. @Kolby в основном потому, что я знаю только javascript. этот код был всего лишь небольшим отрывком из моего javascript, поэтому, возможно, я делаю что-то не так…
4. @NickGarver, примечание: вы загружаете в свое приложение библиотеку размером 82 КБ, либо используйте ее, либо не загружайте. Нет ничего плохого в использовании ванильного JavaScript, здесь вам не нужен jQuery.
Ответ №1:
Вы пытаетесь использовать метод parseFloat(), потому что javascript может пытаться добавить значение в int .
var tyrosineChoice = parseFloat(document.getElementById("tyrosine").getElementsByClassName("on")[0].value);
Ответ №2:
Используйте .innerText
вместо .value
— у вас нет никаких входных элементов.
Библиотека jQuery не добавлена в ваш пример, есть ошибка консоли:
pen.js: 191 Неперехваченная ошибка ссылки: $ не определен
на
$("#perServing").html("$" perServing);
Ответ №3:
Вот исправление для того, что вы хотите: http://codepen.io/emiyake/pen/bwKRQP
Я передаю значение функции, вместо того, чтобы добавлять его в качестве значения атрибута к вашему элементу.
<li id="caffeinetwo" class="off" onclick="changeClass(this, 0.03)">250</li>
Также немного изменился ваш класс изменений, поэтому вам не нужно будет его изменять, если вы хотите добавить или удалить параметр в панели создания.
Комментарии:
1. Боже мой, большое тебе спасибо. Я пытался найти более чистый способ сделать это, и вау, это было отличное обновление. Мне нужно будет отслеживать эти числа в базе данных, так что это помогает мне больше, чем вы думаете.
Ответ №4:
Вы должны использовать .getAttribute('value')
вместо .value
var citrullineChoice = parseFloat(document.getElementById("citrulline").getElementsByClassName("on")[0].getAttribute('value'));
Вот ваш codepen