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

How to append corresponding value to the corresponding dom element using for loop jquery

本文关键字:dom 元素 何使用 jquery for 循环      更新时间:2023-09-26

我尝试循环评级,它向同一个 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>');
}
}

演示链接

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