如何将jquery变量添加到span类属性中?

时间:2018-12-06 14:45:13

标签: javascript jquery

我正在尝试使用Barfiller(https://github.com/9bitStudios/barfiller)。 一切正常,但我想在span类(现在设置为“ 50”)中设置数据百分比值,以通过JQuery变量动态填充。

HTML

<div id="bar1" class="barfiller">
    <span class="tip"></span>
    <span class="fill" data-percentage="50"></span>
</div>

JavaScript

function onQuerySucceeded(data) {
    var projectstatus = data.d.projectstatus;
    $('#data-percentage').text(projectstatus);
}

关于, 克里斯

3 个答案:

答案 0 :(得分:0)

$("#bar1 .fill").attr("data-percentage", projectstatus);

答案 1 :(得分:0)

我更改了您的代码以使其正常工作。

您必须使用$(...).data( key, value) JQuery 中的data-...字段设置新值。

JS 中,您将使用.setAttribute("data-percentage", "50");

$(document).ready( function () {
  console.log($(".fill").data('percentage'));
  onQuerySucceeded(40);
  console.log($(".fill").data('percentage'));
});

function onQuerySucceeded(data) {
    var projectstatus = data;
    $('#bar1 [data-percentage]').data('percentage', projectstatus);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="bar1" class="barfiller">
    <span class="tip"></span>
    <span class="fill" data-percentage="50"></span>
</div>

答案 2 :(得分:0)

我在执行onQuerySucceeded()函数之前添加了 2秒的超时,因为我认为这可能对您很方便,以防万一,您在制作api(服务)后加载了新百分比)致电。希望它对您有帮助:

$(document).ready(function() {
  console.log('data percentage: ' + $(".fill").attr('data-percentage'));
  
  setTimeout(() => {
    // after 2 seconds
    var responseJson = {};
    responseJson.d = { projectstatus: 15 };
    onQuerySucceeded(responseJson);
  }, 2000);
});

function onQuerySucceeded(data) {
  $('.fill').attr("data-percentage", data.d.projectstatus);
  console.log('data percentage: ' + $(".fill").attr('data-percentage'));
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="bar1" class="barfiller">
    <span class="tip"></span>
    <span class="fill" data-percentage="50"></span>
</div>