我有几个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
PS:我是一名自学成才的程序员。我是Javascript的新手。请原谅我任何语法错误,错误格式化的代码,一些愚蠢的,我做过的愚蠢的错误。
提前致谢, Sangamesh
答案 0 :(得分:1)
td
元素必须包含在tr
tr
和table
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属性。
<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;
答案 1 :(得分:1)
在.textContent
使用+=
,.innerHTML
,total
运算符将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标记不正确缺少table
和tr
,td
元素应该是tr
的子元素。并使用innerText
设置最后一个单元格值。
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;
答案 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;