javascript - 基于for循环添加div类

标签 javascript jquery for-loop

我正在尝试创建一个函数,根据变量将一些类名添加到多个 div 中。这些类名将用于星级评级系统。

productScore 等于 3.5 时,我正在寻找这样的最终结果:

 <span class="star fa fa-star on"></span>
 <span class="star fa fa-star on"></span>
 <span class="star fa fa-star on"></span>
 <span class="star fa fa-star semi"></span>
 <span class="star fa fa-star off"></span> 

所以基本上需要添加 3 个类名 -> onoffsemi

所以我所拥有的是:

function reviewStars(productScore, container){
  for (i=0; i < productScore; i++) {
    var starClass = productScore - i >= 1 ? 'on' : (productScore - i >= 0.5 ? 'semi' : 'off') 
    $(container).html('<span class="star fa fa-star' + starClass + '</span>')
  }
}

我想在我的整个网站上使用此功能。所以它可以在我想要的任何地方重复使用。就像这样:

 function initOfferList(){
      // ... code ... 
      $.each(data.products, function(i, product) {
       // ... more code ... 

        var productScore = (product.score * 5) // example 3.5
        var stars = reviewStars(productScore, '.item-rating')
        content += '<div class="item-rating">'+ stars +'</div>';

         // ... more code ....

      }

我的代码不断返回未定义。我不明白为什么它是未定义的。

有人有想法吗?

最佳答案

如果函数 reviewStars 返回一个字符串,您的代码将起作用。

function reviewStars(productScore){
  var container='';
  for (i=0; i < productScore; i++) {
    var starClass = productScore - i >= 1 ? 'on' : (productScore - i >= 0.5 ? 'semi' : 'off') 
    container+='<span class="star fa fa-star' + starClass + '></span>'
  }
  return container;
}

关于javascript - 基于for循环添加div类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51081047/

相关文章:

javascript - jQuery .hide() 方法不隐藏 div

javascript - JSON回调问题

php - 输入按钮仅在选中时才上传,使其成为必需

r - 我应该使用什么应用程序来优化带有 if 语句的嵌套 for 循环?

batch-file - 批量SUBSTRING一个文件名

C# 使用单个 for 循环填充二维数组矩阵

javascript - Angular.js - 在 Controller 中等待服务从服务器返回值

javascript - 如何解决错误: Document not attached to a Window?

php - 防止类为 'sub-menu' 的 ul 元素成为 Wordpress 菜单中列表项的子元素

java - 使用 JQuery 的 session 超时有问题