总结td值的问题

时间:2016-05-26 04:42:00

标签: javascript html

我有几个tds ..我需要从每个中获取值,然后需要总计它。我面临的错误=无法读取null的属性'innerText'。

我想在没有jquery的情况下解决这个问题..(仅使用javascript)

Html代码;

<td id="price1">300</td>
<td id="price2">110</td>
<td id="price3">350</td>
<td id="price4">100</td>
<td id="total">I need Total Here</td>

Js代码;

var price1 = parseInt(document.getElementById("price1").innerText);
var price2 = parseInt(document.getElementById("price2").innerText);
var price3 = parseInt(document.getElementById("price3").innerText);
var price4 = parseInt(document.getElementById("price4").innerText);
var total = (price1+price2+price3+price4);

document.getElementById("total").innerHtml = total;

错误;

Cannot read property 'innerText' of null

Fiddle

PS:我是一名自学成才的程序员。我是Javascript的新手。请原谅我任何语法错误,错误格式化的代码,一些愚蠢的,我做过的愚蠢的错误。

提前致谢, Sangamesh

5 个答案:

答案 0 :(得分:1)

  • 您的标记无效。 td元素必须包含在tr trtable Cannot read property 'innerText' of null中(这导致 innerText
  • 使用total分配.innerHTML值(.textContent也可以使用)
  • 注意:使用innerText代替innerText,因为var price1 = parseInt(document.getElementById("price1").textContent); var price2 = parseInt(document.getElementById("price2").textContent); var price3 = parseInt(document.getElementById("price3").textContent); var price4 = parseInt(document.getElementById("price4").textContent); var total = (price1 + price2 + price3 + price4); document.getElementById("total").textContent = total; //innerHTML will work as well!属于Non-standard属性。

&#13;
&#13;
<table>
  <tr>
    <td id="price1">300</td>
    <td id="price2">110</td>
    <td id="price3">350</td>
    <td id="price4">100</td>
    <td id="total">I need Total Here</td>
  </tr>
</table>
&#13;
static void Main()
{
    string json = @"
        { 'expires': 'Sat, 19 May 2046 04:10:58 + 0000', 'copy_ref': 'SMJNA2wxbGZbnmbnm', 'Result': null, 'error': null }";

    JObject jObj = JObject.Parse(json);                 // Parse the object graph
    string copyRef = jObj["copy_ref"].ToString();       // Retrive value by key

    Console.WriteLine(copyRef);
}
&#13;
&#13;
&#13;

答案 1 :(得分:1)

.textContent使用+=.innerHTMLtotal运算符将html连接到现有<script> window.onload = function() { var price1 = parseInt(document.getElementById("price1").textContent); var price2 = parseInt(document.getElementById("price2").textContent); var price3 = parseInt(document.getElementById("price3").textContent); var price4 = parseInt(document.getElementById("price4").textContent); var total = (price1+price2+price3+price4); document.getElementById("total").innerHTML += " " + total; } </script> <table> <tr> <td id="price1">300</td> <td id="price2">110</td> <td id="price3">350</td> <td id="price4">100</td> <td id="total">I need Total Here</td> </tr> </table>

 awk 'BEGIN {FILE_NAME="output_prefix"; INX=0; } /^10/{INX++; print $0 > (FILE_NAME INX); } {print $0 >> (FILE_NAME INX);}' ; 

答案 2 :(得分:1)

您需要等到页面加载后才能使用 window.onload 。此外,html标记不正确缺少tabletrtd元素应该是tr的子元素。并使用innerText设置最后一个单元格值。

&#13;
&#13;
window.onload = function() {
  var price1 = parseInt(document.getElementById("price1").innerText);
  var price2 = parseInt(document.getElementById("price2").innerText);
  var price3 = parseInt(document.getElementById("price3").innerText);
  var price4 = parseInt(document.getElementById("price4").innerText);
  var total = (price1 + price2 + price3 + price4);

  document.getElementById("total").innerText = total;
}
&#13;
<table>
  <tr>
    <td id="price1">300</td>
    <td id="price2">110</td>
    <td id="price3">350</td>
    <td id="price4">100</td>
    <td id="total">I need Total Here</td>
  </tr>
</table>
&#13;
&#13;
&#13;

答案 3 :(得分:1)

你必须在你的td html之外打开和关闭table和tr标签。与下面的代码相同。 innerHtml应该是innerHTML。

<table>
<tr>
<td id="price1">300</td>
<td id="price2">110</td>
<td id="price3">350</td>
<td id="price4">100</td>
<td id="total">I need Total Here</td>
</tr>
</table>


var price1 = parseInt(document.getElementById("price1").innerText);
var price2 = parseInt(document.getElementById("price2").innerText);
var price3 = parseInt(document.getElementById("price3").innerText);
var price4 = parseInt(document.getElementById("price4").innerText);
var total = (price1+price2+price3+price4);

alert(total);
document.getElementById("total").innerHTML = total;

答案 4 :(得分:0)

您的 td 无法访问,除非它以表格&gt;包装在表格和行中 tr &gt;的 TD

完整的代码(检查小提琴here

var price1 = parseInt(document.getElementById("price1").innerHTML, 10);
var price2 = parseInt(document.getElementById("price2").innerHTML, 10);
var price3 = parseInt(document.getElementById("price3").innerHTML, 10);
var price4 = parseInt(document.getElementById("price4").innerHTML, 10);
var total = (price1+price2+price3+price4);

document.getElementById("total").innerHTML = total;