jquery returns [对象对象]

jquery returns [object Object]

我对一个我处理了很长时间的问题有一点疑问:我有一个 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]。有人可以帮我解决这个问题吗?该值应该是一个整数。

排名是给你的对象。

console.log(rank) 

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

rank['value']//just an example

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

var rank = $('actualcost')

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

即使找不到元素,也只是调用$() returns一个对象。

对象字符串表示总是[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)