Javascript 如何在document.getelementById中尝试null.value
我有一个表,其中有动态行,我需要获取数据并对其进行计算,以便在Javascript中获得总行数并在其中运行循环。我的桌子看起来像这样Javascript 如何在document.getelementById中尝试null.value,javascript,jquery,Javascript,Jquery,我有一个表,其中有动态行,我需要获取数据并对其进行计算,以便在Javascript中获得总行数并在其中运行循环。我的桌子看起来像这样 <table id='mytable1'> <tr> <td id="name_1">Precious Metals</td> <td id="price_1">500</td> <td id="qty_1">10</td> </tr> <
<table id='mytable1'>
<tr>
<td id="name_1">Precious Metals</td>
<td id="price_1">500</td>
<td id="qty_1">10</td>
</tr>
<tr>
<td id="name_2">Non Precious Metals</td>
<td id="price_2">200</td>
<td id="qty_2">5</td>
</tr>
<tr>
<td id="name_3">Gemstones</td>
<td id="price_3">300</td>
<td id="qty_3">10</td>
</tr>
<script>
var counter = $('#mytable1 tr').length;
for (i = 1; i <= counter; i++) {
var price = document.getElementById('price_'+i).value;
var qty= document.getElementById('qty'+i).value;
var price_calc = price * qty;
var total_price = total_price + price_calc;
}
</script>
贵金属
500
10
非贵金属
200
5.
宝石
300
10
我的javascript看起来像这样
<table id='mytable1'>
<tr>
<td id="name_1">Precious Metals</td>
<td id="price_1">500</td>
<td id="qty_1">10</td>
</tr>
<tr>
<td id="name_2">Non Precious Metals</td>
<td id="price_2">200</td>
<td id="qty_2">5</td>
</tr>
<tr>
<td id="name_3">Gemstones</td>
<td id="price_3">300</td>
<td id="qty_3">10</td>
</tr>
<script>
var counter = $('#mytable1 tr').length;
for (i = 1; i <= counter; i++) {
var price = document.getElementById('price_'+i).value;
var qty= document.getElementById('qty'+i).value;
var price_calc = price * qty;
var total_price = total_price + price_calc;
}
</script>
变量计数器=$('#mytable1 tr')。长度;
对于(i=1;i,您可以简化HTML并使计算独立于表中的行数。除此之外,jQuery是不必要的
源代码中的文档
const table=document.getElementById(“mytable1”);
//将表中所有现有行放入数组中
常量行=[…table.getElementsByTagName(“tr”)];
//循环遍历所有行
rows.map(row=>{
//价格在第一格
const price=parseInt(row.cells[1].innerHTML);
//数量在第二个单元格中
const quantity=parseInt(row.cells[2].innerHTML);
//计算每行的总值
施工总价=价格*数量;
控制台日志(总价);
});
贵金属
500
10
非贵金属
200
5.
宝石
300
10
document.getElementById
没有抛出错误,是您的代码试图访问null.value
-为什么不使用$(“#mytable1 tr”)。每个
…然后您将只访问实际存在的行,而不必使用ID。选择第二个td
行的子行作为列表并遍历它。我得到了…知道如何在document.getElementById中传递空值吗使用if
语句?if(!document.getElementById('qty'+i))继续;
既然$('#mytable1 tr')
将返回一个类似数组的结果,该结果只包含存在的行,为什么您甚至需要检查它是否存在?只需遍历$('#mytable1 tr')