У меня есть рейтинг JS-функции, он работает, но он оценивает все звезды моего списка. Я хотел бы удалить братьев и сестер, которые оценивают только одну линь
function rating () {
let $star_rating = $('li #starRating');
let SetRatingStar = function () {
return $star_rating.each(function () {
if (parseInt($star_rating.siblings('input.rating-value').val()) >= parseInt($(this).data('rating'))) {
return $(this).removeClass('fa-star-o').addClass('fa-star');
} else {
return $(this).removeClass('fa-star').addClass('fa-star-o');
}
});
};
$star_rating.on('click', function () {
$star_rating.siblings('input.rating-value').val($(this).data('rating'));
return SetRatingStar();
});
}
Я пробую это, но мой код не работает, я не могу изменить класс звезд (я удалил «братьев и сестер»).
function rating () {
let $star_rating = $('li #starRating');
let SetRatingStar =function () {
return $star_rating.each(function () {
if (parseInt($star_rating('input.rating-value').val()) >= parseInt($(this).data('rating'))) {
return $(this).removeClass('fa-star-o').addClass('fa-star');
} else {
return $(this).removeClass('fa-star').addClass('fa-star-o');
}
});
};
$star_rating.on('click', function () {
$star_rating('input.rating-value').val($(this).data('rating'));
return SetRatingStar();
});
}
Это код моего взгляда
<div class = "d-inline-flex">
<input type = "checkbox" id = "checkAll" onclick = "toggle(this);">
<p class = "mt-3 mb-0 ml-1">Tous vus</p>
</div>
{% for episode in episodes %}
<li class = "list-group-item bgt">
{% if episode.hasSeen == 0 %}
<input type = "checkbox" id = "{{ episode.id }}" name = "hasSeen" onclick = "processForm(this)">
{% else %}
<input type = "checkbox" id = "{{ episode.id }}" name = "hasSeen" checked = "checked" onclick = "processForm(this)">
{% endif %}
{{ "E%02d" | format (episode.number) }} - {{ episode.title }}
{% for i in 1..5 %}
{% set classNote = (i<= episode.note ? "" : i - episode.note < 0.5 ? "-half-full" : "-o" ) %}
<span class = "fa fa-lg fa-star{{ classNote }}" id = "starRating" data-rating = "{{ i }}" onclick = "rating(this)"></span>
<input type = "hidden" name = "whatever1" class = "rating-value" value = "{{ episode.note }}">
{% endfor %}
</li>
{% endfor %}
Вместо этого вы, вероятно, захотите использовать class = "starRating"
и .starRating
.
Следует ли мне указать, что у вас может быть только один элемент с
id
?