Javascript 如何在document.getelementById中尝试null.value

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> <

我有一个表,其中有动态行,我需要获取数据并对其进行计算,以便在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>

贵金属
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')