使用jQuery循环遍历表 - 计算每行的单元格

时间:2014-05-18 20:17:08

标签: javascript jquery

我有一个表,我想在jQuery中计算第六列。我可以通过类来识别列,CTR。

    <table class="table">
         <tr>
            <td class="date">08-05-2014</td>
            <td class="spend">615,68</td>
            <td class="impressions">71996</td>
            <td class="clicks">30</td>
            <td class="leads">3</td>
            <td class="CTR">—</td>
            <td class="eCPM">—</td>
            <td class="eCPC">—</td>
            <td class="eCPL">—</td>
         </tr>
         <tr>
            <td class="date">09-05-2014</td>
            <td class="spend">1983,44</td>
            <td class="impressions">398429</td>
            <td class="clicks">115</td>
            <td class="leads">15</td>
            <td class="CTR">—</td>
            <td class="eCPM">—</td>
            <td class="eCPC">—</td>
            <td class="eCPL">—</td>
         </tr>
    </table>

我希望将点击次数计算为点击次数除以该给定行的展示次数。我试图在jQuery中这样做,但代码没有运行:

$( document ).ready(function() {
  $('table tr').each(function(index) {
  $this = $(this)
  var imps = $this.find("td.impressions").val();
  var clicks = $this.find("td.clicks").val();
  var ctr = $this.find("td.CTR").val();
  ctr = parseFloat(clicks) / parseFloat(imps) * 100;
  });
});

我做错了什么? - 代码应该如何?

[UPDATE] 由于回复,我已采用了该代码。这仍然无法运行:

$( document ).ready(function() {
  $('tr').each(function(index) {
    $this = $(this)
    var imps = $this.find(".impressions").html();
    var clicks = $this.find(".clicks").html();
    $this.find(".CTR").html() = parseFloat(clicks) / parseFloat(imps);
  });
});

控制台告诉我&#34;分配中的左侧无效&#34;最后一行的作业。

[解决]

$( document ).ready(function() {
  $('tr').each(function(index) {
    $this = $(this)
    var imps = $this.find(".impressions").text();
    var clicks = $this.find(".clicks").text();
    $this.find(".CTR").text(parseFloat(clicks) / parseFloat(imps) * 100);
  });
});

1 个答案:

答案 0 :(得分:1)

在td元素上调用val()不会返回内部html。它返回value属性。如果你试图在td元素中获取html,请像这样调用它:

$this.find("td.impressions").html();