我尝试循环评级,并将所有值显示在同一个dom元素中。如何将其附加到相应的dom元素。
这是尝试过的:
HTML:
<div class="rating" data-id="0"></div>
<div class="rating" data-id="2.5"></div>
<div class="rating" data-id="1.5"></div>
<div class="rating" data-id="3"></div>
<div class="rating" data-id="4.678"></div>
JS:
var ratingValue = "", rounded = "";
var ratingCon = $('.rating');
for(var i=0; i<ratingCon.length; i++){
ratingValue = $(ratingCon[i]).data("id"), rounded = (ratingValue | 0);
for (var j = 0; j < 5 ; j++) {
$(".rating").append('<i class="fa '+ ((j < rounded) ? "fa-star" : ((((ratingValue - j) > 0) && ((ratingValue - j) < 1)) ? "fa-star-half-o" : "fa-star-o")) +'" aria-hidden="true"></i>');
}
}
答案 0 :(得分:1)
问题在于您的第二个for
循环调用$(".rating")
,但选择具有className rating
的所有元素最终只是在追加时使用第一个.rating
元素。如果您将$(".rating")
更改为$(ratingCon[i])
,则一切正常。更新了小提琴:https://jsfiddle.net/32L669tv/12/。