JQuery возвращает NaN с тегом span

0

Я пытаюсь использовать систему усреднения, которая довольно проста, но по какой-либо причине JQuery не вернет значения из тегов span.

<span class="rating"></span>

Вот моя скрипка. http://jsfiddle.net/uTuYH/1/

  • 3
    Ваш код должен быть включен в ваш вопрос.
  • 0
    Пролеты не имеют значений. Если вы ищете значение, хранящееся в атрибуте, используйте метод .attr. Кроме того, вы никогда не устанавливаете атрибут value, поэтому он остается ""
Показать ещё 1 комментарий
Теги:
slider
nan

4 ответа

0
Лучший ответ

Попробуй это:

          $(".rating").each(function () {
              var ratingValue = parseInt($(this).text(), 10);
              total = total + ratingValue;
              console.log(ratingValue);
          });

Получение текста:

$(this).text()

Вместо:

$(this).val()
1

Вы должны использовать атрибуты данных, если что-то здесь. Вы применяете значение к элементу, который стандартно не поддерживает это, или я должен сказать, что это нетрадиционное использование, поскольку технически это может работать, но более широко принятые практики могут предшествовать использованию значения в теге span. Тем более, что атрибуты данных существуют и поддерживаются.

Попробуйте <span class="rating" data-rating="5"></span>

Затем в вашей рейтинговой функции вы получаете доступ

$(this).data('rating')
0

Это не html-входы, которые вы получаете, поэтому вы не можете использовать .val(), вместо этого используйте .text():

var ratingValue = parseInt($(this).text(), 10);

http://jsfiddle.net/uTuYH/11/

0

У div нет атрибута с именем "Значение". Вам нужно использовать.text() или.html()

var ratingValue = parseInt($(this).text(), 10);

или

var ratingValue = parseInt($(this).text(), 10);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню