代码之家  ›  专栏  ›  技术社区  ›  user5405873

如何根据数字显示评分

  •  1
  • user5405873  · 技术社区  · 8 年前

    我现在的处境是 data database 这样地

    var data = [  {name:'Alpha Hotel',price:400,star:3},
                  {name:'Beta Hotel',price:600,star:4},
                  {name:'Gamma Hotel',price:450,star:5},
               ];
    

    我想展示同样多 rating 作为我的 star

    例如 {name:'Alpha Hotel',price:400,star:3} 我的 评级 3 1

    以下是我尝试过的: https://jsfiddle.net/ewL4wLvh/2/

    6 回复  |  直到 8 年前
        1
  •  2
  •   Rayon    8 年前

    使用 loop 对于表单 star

    Array#fill - fill()

    Array#reduce - reduce()

    var data = [{
      name: 'Alpha Hotel',
      price: 400,
      star: 3
    }, {
      name: 'Beta Hotel',
      price: 600,
      star: 4
    }, {
      name: 'Gamma Hotel',
      price: 450,
      star: 5
    }, ];
    
    var htmlConstructed = '';
    $.each(data, function(i, val) {
      var starStr = Array(val.star).fill(null).reduce((a) => a + '<i class="fa fa-star" aria-hidden="true" style="color:#D91E18;"></i>', '');
      htmlConstructed += '<p>Name : ' + val.name + '</p>' + '<p>Price : ' + val.price + '</p>' + 'Rating :<span>' + starStr + '</span><hr/>';
    });
    $('#content-area').append(htmlConstructed);
    <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet" />
    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <div id="content-area"></div>
        2
  •  2
  •   abhishekkannojia    8 年前

    在构造HTML时,需要重复 spans
    您可以使用这个巧妙的技巧来实现这一点,而无需使用循环:

    htmlConstructed += '<p>Name : '+val.name+'</p>'+
        '<p>Price : '+val.price+'</p>'+
        'Rating :'+new Array(val.star + 1).join('<span><i class="fa fa-star" aria-hidden="true" style="color:#D91E18;"></i></span>')+
        '<hr/>';
    

    查看更新的 FIDDLE

        3
  •  0
  •   BrS    8 年前

        4
  •  0
  •   ahmad valipour    8 年前

    Array.join

    var data = [  {name:'Alpha Hotel',price:400,star:3},
              {name:'Beta Hotel',price:600,star:4},
              {name:'Gamma Hotel',price:450,star:5},
           ];
    
    var htmlConstructed = '';
     $.each(data,function(i,val){        
          htmlConstructed += '<p>Name : '+val.name+'</p>'+'<p>Price : '+val.price+'</p>'+'Rating :<span>'+
          Array(val.star).join('<i class="fa fa-star" aria-hidden="true" style="color:#D91E18;"></i>')
      +'</span><hr/>';
    
      });
    
      $('#content-area').append(htmlConstructed);
    
        5
  •  0
  •   Mr.Throg    8 年前

    您可以使用这个简单的解决方案。

    var data = [  {name:'Alpha Hotel',price:400,star:3},
                      {name:'Beta Hotel',price:600,star:4},
                      {name:'Gamma Hotel',price:450,star:5},
                   ];
    
            var htmlConstructed = '';
             $.each(data,function(i,val){
                 // console.log(val.name);
                 var rating='';
                 for(var i=0;i<val.star;i++){
                        rating = rating +'<span><i class="fa fa-star" aria-hidden="true" style="color:#D91E18;"></i></span>';
                 }
                  htmlConstructed += '<p>Name : '+val.name+'</p>'+'<p>Price : '+val.price+'</p>'+'Rating :'+rating+'<hr/>';
    
    
         });
    
         $('#content-area').append(htmlConstructed);
    
        6
  •  0
  •   Gokulan P H    8 年前

    使用此代码,

    var data = [  {name:'Alpha Hotel',price:400,star:3},
                  {name:'Beta Hotel',price:600,star:4},
                  {name:'Gamma Hotel',price:450,star:5},
               ];
    
        var htmlConstructed = '';
         $.each(data,function(i,val){
             // console.log(val.name);
    
              htmlConstructed += '<p>Name : '+val.name+'</p>'+'<p>Price : '+val.price+'</p>'+'Rating :'+ addStar(val.star) +'<hr/>';
    
     });
    
     function addStar(rating){
     var returnString = '';
     for(var i=0;i< rating;i++ )
     returnString = returnString + '<span><i class="fa fa-star" aria-hidden="true" style="color:#D91E18;"></i></span>';
    
     return returnString;
    
     }
    
     $('#content-area').append(htmlConstructed);
    

    小提琴: https://jsfiddle.net/r83wnpqr/

    推荐文章