Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我使用javascript创建了一个HTML表格_Javascript_Html_Arrays_For Loop_Html Table - Fatal编程技术网

我使用javascript创建了一个HTML表格

我使用javascript创建了一个HTML表格,javascript,html,arrays,for-loop,html-table,Javascript,Html,Arrays,For Loop,Html Table,wiubwefbwiefewfeubwefjdbfhjehjfj代码笔帮了大忙!我提到过在某一点上查看控制台输出。这非常重要,因为它告诉你哪里出了问题。在codepen中,它也位于左下角,JS中有一个红色感叹号,表示存在错误。当我按下公制按钮时,我看到: TypeError:对象高度为空 这是因为您的一些数据的宽度或高度为null,而不是您期望的值,所以它会“崩溃”,并在导致问题的任何行停止。这就是为什么有些行消失了 我看到两个修正: 修复数据,使值中不包含null 使代码更加健壮,这样它就不

wiubwefbwiefewfeubwefjdbfhjehjfj

代码笔帮了大忙!我提到过在某一点上查看控制台输出。这非常重要,因为它告诉你哪里出了问题。在codepen中,它也位于左下角,JS中有一个红色感叹号,表示存在错误。当我按下公制按钮时,我看到:

TypeError:对象高度为空

这是因为您的一些数据的宽度或高度为null,而不是您期望的值,所以它会“崩溃”,并在导致问题的任何行停止。这就是为什么有些行消失了

我看到两个修正:

  • 修复数据,使值中不包含null
  • 使代码更加健壮,这样它就不会在无效数据上崩溃(这对于任何程序都是可取的)
对于第二个选项,您可以按如下方式修复代码:

function MetricValues() { 
    var tab = document.querySelector("table");
    tab.innerHTML = "";
    for (var obj of death_row) {
        var height = obj.height || "0' 0\"";
        var row = `<tr><td>${obj.first_name}</td>
         <td>${obj.last_name}</td>
         <td>${obj.age_at_execution}</td>
         <td>${((obj.weight)/2.2046).toFixed(1)}</td>
         <td>${(((Number(height[0])*12*2.54) + (Number(height[3])*2.54))/100).toFixed(2)}</td></tr>`;
        tab.innerHTML += row;
    }
};
函数MetricValues(){
var选项卡=document.querySelector(“表”);
tab.innerHTML=“”;
适用于(死囚区的var obj){
变量高度=对象高度| |“0'0\”;
变量行=`${obj.first_name}
${obj.last_name}
${obj.age_at_execution}
${((物体重量)/2.2046.toFixed(1)}
${((数字(高度[0])*12*2.54)+(数字(高度[3])*2.54))/100.toFixed(2)}`;
tab.innerHTML+=行;
}
};
使用临时变量
var height=obj.height | |“0'0\”0'0“的代码>修复了崩溃。

顺便说一句,你肯定应该这样做。

所以你有了如图所示的行(
document.getElementById(“metric”).onclick=function(){
),还有一些其他行,没有显示出来,比如
document.getElementById(“imperial”).onclick=function(){
?你确定没有意外地将onclick分配给“metric”两次吗?还有,是什么他们不会一起工作"确切的意思是?如果它们都连接了会发生什么?什么都没有?结果错误?你可以创建一个函数来计算页面加载上的两个值,并且用按钮只显示每个值。我认为你应该编辑你的问题并包含更多的代码,这样我们就可以看到所有内容。例如,我不能告诉你死亡排在哪里
myArray
来自。正如@pitinca所说,您还应该将此代码分组到一个函数中并调用它3次,而不是拥有它的3个副本。仍然不清楚“有效”和“无效”是什么意思。我假设“有效”意味着“填充表”,但最好确切地说出您所看到的内容,而不是“无效”。例如“表为空”或“表未更改”。此外,请在浏览器控制台中检查报告的任何错误,并将其包括在内。值得怀疑的是,代码
tab.innerHTML+=row;
。它会不断添加到表中,而不会重置它。可能这就是“不起作用”的原因“意思是:-)。在开始添加行之前,请尝试设置
tab.innerHTML=“”;
以重置它。如果我能看到所有内容,我相信这是一个很容易解决的问题。我认为现在最好的办法是创建问题的演示(即使使用硬编码的假数据,而不是600行)在或处,并在此处发布一个指向实时演示的链接。奖金问题1:当您点击按钮时,您的表格标题消失,因为它们不包含在
innerHTML
中。这是另一天的问题!奖金问题2:您的高度转换有一个错误,因为它只查看了英寸的第四个字符。这意味着5'1“被视为与5'10相同”。这也是另一天的问题。