Как прервать цикл через значение из дата-атрибута?
Доброе время суток. Какое условие должно быть, чтобы прервать цикл на значение 3 из data-rating?
$(function(){
$(".rating__icon").each(function(index, elem) {
$(elem).attr('data-rating-icon', 'true');
});
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="rating" data-rating="3">
<svg class="rating__icon"></svg>
<svg class="rating__icon"></svg>
<svg class="rating__icon"></svg>
<svg class="rating__icon"></svg>
<svg class="rating__icon"></svg>
</div>
Ответы (1 шт):
Автор решения: Simon
→ Ссылка
Сначала берете значение из data-rating атрибута, затем просто сравниваете индекс текущей итерации и значение из дата-атрибута, когда значение совпадает возвращаете false;
Если вернуть true, то перейдет к следующей итерации, как при использовании continue в нормальных циклах, если вернуть false, то цикл прервется, как при использовании break.
(function(){
const rating = $('.rating').data('rating');
$(".rating__icon").each(function(index, elem) {
index++;
console.log(index);
if (index === rating) {
return false;
}
});
})();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="rating" data-rating="3">
<svg class="rating__icon"></svg>
<svg class="rating__icon"></svg>
<svg class="rating__icon"></svg>
<svg class="rating__icon"></svg>
<svg class="rating__icon"></svg>
</div>