我有一个表,我想在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);
});
});
答案 0 :(得分:1)
在td元素上调用val()不会返回内部html。它返回value属性。如果你试图在td元素中获取html,请像这样调用它:
$this.find("td.impressions").html();