如何JS在循环中修改表格标签?

draw = "<div><table><tbody>";
recv = '{"张三": ["89", "63", "78", "77"], "李四": ["99", "75", "98", "97"]}';
obj = JSON.parse(recv);
for (i in obj){
    draw += "<tr><td>" + i + "</td><td>" + obj[i][0] + "</td><td>" + obj[i][1] + "</td><td>" + obj[i][2] + "</td></tr>";
}
draw += "</tbody></table></div>";
document.write(draw);

我用循环建了一个表,现在希望:
1、所有行的文字居中,也就是在draw字符串中的tr标签后添加align="center"字符串,但是直接加是报错的
2、对每次循环中的obj[i][0]进行判断,如果小于90,则在tr标签后加入“bgcolor= 字符串循环,让这一行标记颜色
请问该如何实现?

居中

draw = "<div><table><tbody>";
recv = '{"张三": ["89", "63", "78", "77"], "李四": ["99", "75", "98", "97"]}';
obj = JSON.parse(recv);
for (i in obj){
    draw += "<tr align='center'><td>" + i + "</td><td>" + obj[i][0] + "</td><td>" + obj[i][1] + "</td><td>" + obj[i][2] + "</td></tr>";
}
draw += "</tbody></table></div>";
document.write(draw);


判断并且改变颜色

draw = "<div><table><tbody>";
recv = '{"张三": ["89", "63", "78", "77"], "李四": ["99", "75", "98", "97"]}';
obj = JSON.parse(recv);
for (i in obj){
    if (obj[i][0] < 90){
        draw += "<tr align='center' bgcolor='red'><td>" + i + "</td><td>" + obj[i][0] + "</td><td>" + obj[i][1] + "</td><td>" + obj[i][2] + "</td></tr>";
    }else{
        draw += "<tr align='center'><td>" + i + "</td><td>" + obj[i][0] + "</td><td>" + obj[i][1] + "</td><td>" + obj[i][2] + "</td></tr>";
    }
}
draw += "</tbody></table></div>";
document.write(draw);


请试下:


draw = "<div><table><tbody>";
recv = '{"张三": ["89", "63", "78", "77"], "李四": ["99", "75", "98", "97"]}';
obj = JSON.parse(recv);
for (i in obj){
  if  (obj[i][0] < 90) {
    draw += "<tr align='center' bgcolor='red'><td>" + i + "</td><td>" + obj[i][0] + "</td><td>" + obj[i][1] + "</td><td>" + obj[i][2] + "</td></tr>";
  } else {
    draw += "<tr align='center'><td>" + i + "</td><td>" + obj[i][0] + "</td><td>" + obj[i][1] + "</td><td>" + obj[i][2] + "</td></tr>";
}
draw += "</tbody></table></div>";
document.write(draw);

实现的有点简陋,见谅
分享下思路
首先直接通过DOM进行样式的添加会进行报错

Uncaught TypeError: Cannot set property of undefined at

于是就想到了页面加载顺序的问题。
我们知道 页面的加载顺序(正确的顺序)是

    结构>样式>行为   
    也就是
    html>css>JavaScript

如果我们的js部分写到了页面内容的前面,那么在加载的时候,浏览器的加载顺序(错误顺序)是js>html,所以 我们在js中获取的html元素就出现了undefined的错误。
因为没有加载html的时候,js的执行对象找不到。

    1.把js内容提到页面内容之后,也就是说 你的</script>标签要紧挨着</body>标签
    2.把所有的js代码用
        window.onload=function(){
            (这里写代码)
        };
    包起来即可。

接下来就可以进行DOM操作了,tr元素好像设置不了样式,但是我设置了td这个元素,这个问题你看看
q2应该没什么说的。。。。。。。。。。


window.onload = function() {
            draw = "<div><table><tbody>";
            recv = '{"张三": ["89", "63", "78", "77"], "李四": ["99", "75", "98", "97"]}';
            obj = JSON.parse(recv);
            for (i in obj) {
                draw += "<tr><td>" + i + "</td><td>" + obj[i][0] + "</td><td>" + obj[i][1] + "</td><td>" + obj[i][2] +
                    "</td></tr>";
            }
            draw += "</tbody></table></div>";
            document.write(draw);

            // 1、所有行的文字居中
            var td = document.querySelectorAll('td');
            for (var i = 0; i < td.length; i++) {
                td[i].style.width = '1080px';
                td[i].style.border = 'solid 1px black'
                td[i].style.textAlign = 'center'
                // 对小于90加背景颜色
                if (td[i].textContent<90) {
                    td[i].style.backgroundColor = 'pink'
                }
            }
        };