Я пытаюсь использовать систему усреднения, которая довольно проста, но по какой-либо причине JQuery не вернет значения из тегов span.
<span class="rating"></span>
Вот моя скрипка. http://jsfiddle.net/uTuYH/1/
Попробуй это:
$(".rating").each(function () {
var ratingValue = parseInt($(this).text(), 10);
total = total + ratingValue;
console.log(ratingValue);
});
Получение текста:
$(this).text()
Вместо:
$(this).val()
Вы должны использовать атрибуты данных, если что-то здесь. Вы применяете значение к элементу, который стандартно не поддерживает это, или я должен сказать, что это нетрадиционное использование, поскольку технически это может работать, но более широко принятые практики могут предшествовать использованию значения в теге span. Тем более, что атрибуты данных существуют и поддерживаются.
Попробуйте <span class="rating" data-rating="5"></span>
Затем в вашей рейтинговой функции вы получаете доступ
$(this).data('rating')
Это не html-входы, которые вы получаете, поэтому вы не можете использовать .val()
, вместо этого используйте .text()
:
var ratingValue = parseInt($(this).text(), 10);
У div нет атрибута с именем "Значение". Вам нужно использовать.text() или.html()
var ratingValue = parseInt($(this).text(), 10);
или
var ratingValue = parseInt($(this).text(), 10);