【问题标题】:Show + or - percentage value for the total displayed显示总数的 + 或 - 百分比值
【发布时间】:2015-11-24 10:20:03
【问题描述】:

我想获得所显示总数的百分比值。这是小提琴

`http://jsfiddle.net/binoymat/d9f8t9vj/11/`

这是我完整的 HTML 代码

<select id="category"></select>
<select id="category1"></select>
<select id="category2"></select>
<select id="category3"></select>
<br>
<br>
<div class="row">
<div class="col-sm-2 " id="services_block" style="width: 230px;height:100px; background-color: orange;color: white; line-height: 30px; text-align: center; font-size: 100%;  font-weight: bold; border-left:3px solid white; >
Visitors <br> CURRENT DAY<br>
<span id="totalVisitorsCurrentDay" style="color: black; font-size: 150%;  font-weight: bold;" > </span>
</div>
<br>


<div class="col-sm-2" id="services_block" style="width: 180px;height: 100px;  background-color: red;color: white;line-height: 30px; text-align: center; font-size: 100%;  font-weight: bold; border-left:3px solid white;>
Visitors  
<br> PAST DAY
<br>
    <span id="totalVisitorsPastDay" style="color: black; font-size: 150%;  font-weight: bold;"></span>
    </div>
<br>

<div class="col-sm-2" id="services_block" style="width: 180px;height: 100px;  background-color: red;color: white;line-height: 30px; text-align: center; font-size: 100%;  font-weight: bold; border-left:3px solid white;
border-right:3px solid white;">Visitors 
<br> PAST WEEK
<br>
 <span id="totalVisitorsPastWeek" style="color: black; font-size: 150%;  font-weight: bold;"></span>
  </div>
  </div>
  <br>

完整的 Jquery 代码

$.getJSON("https://api.myjson.com/bins/2soxd", function (data) {
//code inside
var items = data;
var checkIds = [];
$.each(items, function (k, v) {
    if ($.inArray(v.id, checkIds) == -1) {
        $("#category").append('<option value="' + v.id + '" data-price="' + v.visitors + '">' + v.chains + '</option>');
        checkIds.push(v.id);
    }
});

$("#category").on('change', function () {
    var dept_number = parseInt($(this).val());
    var price = $(this).find(':selected').data('price');
    var tochange = false;
    var total = 0;
    var totalVisCurrDay= 0;
    var totalVisPasDay= 0;
    var totalVisPasWeek= 0;
    $.each(items, function (k, v) {
        if (v.id == dept_number) {
            if (tochange == true) {
                $("#category1").append('<option value="' + v.id + '" data-visitorscurrday="' + v.visitorscurrday + '" data-visitorspastday="' + v.visitorspastday + '" data-visitorspastweek="' + v.visitorspastweek + '" data-price="' + v.visitors + '">' + v.site + '</option>');
                $("#category2").append('<option value="' + v.id + '" data-visitorscurrday="' + v.visitorscurrday + '" data-visitorspastday="' + v.visitorspastday + '" data-visitorspastweek="' + v.visitorspastweek + '" data-price="' + v.visitors + '">' + v.zone + '</option>');
                $("#category3").append('<option value="' + v.id + '" data-visitorscurrday="' + v.visitorscurrday + '" data-visitorspastday="' + v.visitorspastday + '" data-visitorspastweek="' + v.visitorspastweek + '" data-price="' + v.visitors + '">' + v.date + '</option>');
            } else {
                $("#category1").html('<option value="' + v.id + '" data-visitorscurrday="' + v.visitorscurrday + '" data-visitorspastday="' + v.visitorspastday + '" data-visitorspastweek="' + v.visitorspastweek + '" data-price="' + v.visitors + '">' + v.site + '</option>');
                $("#category2").html('<option value="' + v.id + '" data-visitorscurrday="' + v.visitorscurrday + '" data-visitorspastday="' + v.visitorspastday + '" data-visitorspastweek="' + v.visitorspastweek + '" data-price="' + v.visitors + '">' + v.zone + '</option>');
                $("#category3").html('<option value="' + v.id + '" data-visitorscurrday="' + v.visitorscurrday + '" data-visitorspastday="' + v.visitorspastday + '" data-visitorspastweek="' + v.visitorspastweek + '" data-price="' + v.visitors + '">' + v.date + '</option>');
                tochange = true;
            }
            total += v.visitors;
            totalVisCurrDay += v.visitorscurrday;
            totalVisPasDay += v.visitorspastday;
            totalVisPasWeek += v.visitorspastweek;
        }
    });
    $('#dept-input').val(dept_number);
    $('#price-input').val(total);
    $("#totalVisitors").text(total);
    $("#totalVisitorsCurrentDay").text(totalVisCurrDay);
    $("#totalVisitorsPastDay").text(totalVisPasDay);
    $("#totalVisitorsPastWeek").text(totalVisPasWeek);
}).change();

$("select[id^='category']:not(#category)").on('change', function () {
    var dept_number = parseInt($(this).val());
    var price = $(this).find(':selected').data('price');
   var VisitorsCurrentDay = $(this).find(':selected').data('visitorscurrday');
  var VisitorsPastDay = $(this).find(':selected').data('visitorspastday');
  var VisitorsPastWeek = $(this).find(':selected').data('visitorspastweek');
    $('#dept-input').val(dept_number);
    $('#price-input').val(price);
    $("#totalVisitors").text(price);
   $("#totalVisitorsCurrentDay").text(VisitorsCurrentDay);
    $("#totalVisitorsPastDay").text(VisitorsPastDay);
    $("#totalVisitorsPastWeek").text(VisitorsPastWeek);
});
});

例如:-当页面加载时...如果总值(以橙色显示)大于黄色框中显示的总值,那么我想显示百分比通过划分它获得的价值。如果它是负数..那么我想显示负号(-)以及百分比

这是我想要实现的输出截图。

请为任何解决方案编辑我的小提琴

【问题讨论】:

  • 您应该始终在 SO 此处添加相关代码
  • 嗨,我的代码在小提琴中添加了
  • 请将您的代码添加到问题中。小提琴是一个很好的补充,但是如果链接不可用,您的问题将无法回答,并且对未来的访问者将毫无用处。这就是您试图绕过的警告存在的原因。
  • 正如@Satpal 所述,将该代码添加到问题本身。点击edit,然后按Ctrl + M
  • 你是在问逻辑计算%吗?

标签: jquery json


【解决方案1】:

试试:

  $("#totalVisitorsCurrentDay").text(totalVisCurrDay);
    $("#totalVisitorsPastDay").text(totalVisPasDay+" / "+(100-(totalVisPasDay*100/totalVisCurrDay)).toFixed(2)+"%");
    $("#totalVisitorsPastWeek").text(totalVisPasWeek+" / "+(100-(totalVisPasWeek*100/totalVisCurrDay)).toFixed(2)+"%");

js:http://jsfiddle.net/as9k7uda/

【讨论】:

  • 谢谢你..你完美地将值放在了 div.. 使工作更容易......同样的方法如何为其他下拉菜单做到这一点???
  • 将内容包装在一个 div 中并设置该 div 的样式
  • 点赞html('&lt;div style="font-size: 150%;"&gt;'+totalVisPasWeek+"&lt;/br&gt;"+(100-(totalVisPasWeek*100/totalVisCurrDay)).toFixed(2)+'%&lt;/div&gt;');
  • 然后移动 div 的开头以仅包含 %
  • html(totalVisPasWeek+'&lt;/br&gt;&lt;div style="font-size: 150%;"&gt;'+ (100-(totalVisPasWeek*100/totalVisCurrDay)).toF‌​ixed(2)+'%&lt;/div&gt;');
【解决方案2】:

检查这个。更改值 http://jsfiddle.net/d9f8t9vj/13/ 你会看到 %

var percent = (100 - (VisitorsPastDay * 100) / VisitorsCurrentDay);

【讨论】:

  • 在第二个、第三个和第四个下拉菜单中效果很好……但不适用于第一个下拉菜单
猜你喜欢
  • 1970-01-01
  • 2022-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-09
  • 1970-01-01
相关资源
最近更新 更多