jquery返回[object Object]

时间:2016-03-14 19:21:54

标签: jquery html progress-bar

我对一个我正在处理很长时间的问题有一点疑问:我有一个显示项目列表的HTML,存储在h2db中。这些项目正确显示。

<tr th:each="item : ${list}">
  <td th:text="${item.getActualcost()}" id="actualcost">Actual Cost</td>
</tr>

我现在想在此列表中添加另一列,显示进度条。

我将此代码添加到HTML部分:

<div class="container">
  <div class="col-md-4">
    <div class="progress">
          <div id="progressPlaceholder"></div>
    </div>

脚本部分如下所示:

<script>
    var rank=$('actualcost'),place=4;
    var progress = '<div class="progress-bar" role="progressbar" aria-valuenow="'+rank+'" aria-valuemin="0" aria-valuemax="100" style="width: '+rank+'%;"><span class="show" id="totalUsers">Ranked '+place+' of '+rank+'</span></div>';
    $('#progressPlaceholder').empty().append(progress);
</script>

问题是,进度条没有正确填写。所以我试图通过添加'+ rank +'来找出它获得的价值。不幸的是,我只打印出[object Object]。有人可以帮我解决这个问题吗?该值应为int。

2 个答案:

答案 0 :(得分:0)

Rank是一个对象。

console.log(rank) 

应该给你对象,然后使用适当的键。它可能看起来像:

rank['value']//just an example

答案 1 :(得分:0)

当你获得一个带有jQuery的元素时,你会得到一个jQuery集合,它也是一个对象。

var rank = $('actualcost')

请注意,上面会假设您的元素看起来像<actualcost></actualcost>,您可能没有。

即使找不到该元素,只需调用$()即可返回一个对象。

对象字符串表示始终为[object Object]

当您连接一个对象和一个字符串时,您将获得对象字符串表示形式,即...等待它...始终[object Object]

var str = 'something something' + $('actualcost');

// str === 'something something[object Object]'

这正是您的代码中发生的事情

var rank=$('actualcost'),place=4;
var progress = '<div class="progress-bar" role="progressbar" aria-valuenow="'+rank+' ....

你可能想要

var rank = $('#actualcost').text() ,place=4;

取决于HTML的实际内容(我不知道Thymeleaf)