如何使用for循环jquery将相应的值附加到相应的dom元素

时间:2016-04-26 05:43:44

标签: javascript jquery

我尝试循环评级,并将所有值显示在同一个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>');
}
}

Demo Link

1 个答案:

答案 0 :(得分:1)

问题在于您的第二个for循环调用$(".rating"),但选择具有className rating的所有元素最终只是在追加时使用第一个.rating元素。如果您将$(".rating")更改为$(ratingCon[i]),则一切正常。更新了小提琴:https://jsfiddle.net/32L669tv/12/