<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Untitled Page</title>
    <script type="text/javascript">
        function barchar(data, width, height, color) {
            if (!width) width = 200;
            if (!height) height = 100;
            if (!color) color = 'blue';
            width = width - 22;
            height = height - 22;            var chart = document.createElement["div"];
            chart.style.width = width + "px";
            chart.style.height = height + "px";
            chart.style.border = "1px solid block";
            
            var barwidth = Math.floor(width / data.lenght);
            var maxdata = Math.max.apply(this, data);
            var scale = height / maxdata;            for (var i = 0; i < data.length; i++) {
                var bar = document.createElement("div");
                var barheight = scale * data[i];
                bar.style.border = "1px solid red";
                bar.style.width = (barwidth - 2) + "px";  
                bar.style.height =( barheight - 1) + "px";
                bar.style.backgroundcolor = color;
                char.appendChild(bar);            }
            document.body.appendChild(chart);
            return chart;
       
         }
    </script>
 </head>
<body>  <script type="text/javascript">barchar([1, 2, 4, 8, 16, 32, 64, 128, 256]);</script>
</body>
</html>大家帮我看看,运行不出来,老是说我chart.style.width = width + "px";中Error:'style' 为空或不是对象?是怎么回事?

解决方案 »

  1.   

    var chart = document.createElement("div");
    chart.style.width = width + "px";
    chart.style.height = height + "px";
    chart.style.border = "1px solid black";
      

  2.   

    还是报错原因:chart.style.border = "1px solid black";这一行中Error:参数无效。
      

  3.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title>Untitled Page</title>
    <script type="text/javascript">
    function barchar(data, width, height, color) {
    if (!width) width = 200;
    if (!height) height = 100;
    if (!color) color = 'blue';
    width = width - 22;
    height = height - 22;var chart = document.createElement("div");
    chart.style.width = width + "px";
    chart.style.height = height + "px";
    chart.style.border = "1px solid black";var barwidth = Math.floor(width / data.length);
    var maxdata = Math.max.apply(this, data);
    var scale = height / maxdata;for (var i = 0; i < data.length; i++) {
    var bar = document.createElement("div");
    var barheight = scale * data[i];
    bar.style.border = "1px solid red";
    bar.style.width = (barwidth - 2) + "px"; 
    bar.style.height =( barheight - 1) + "px";
    bar.style.backgroundcolor = color;
    chart.appendChild(bar);}
    document.body.appendChild(chart);
    return chart;}
    </script>
    </head>
    <body><script type="text/javascript">barchar([1, 2, 4, 8, 16, 32, 64, 128, 256]);</script>
    </body>
    </html>
      

  4.   

    错误不在提示的那一行, 而是下一行:
    var barwidth = Math.floor(width / data.lenght);
    请注意, data的属性, 是length, 而不是 lenght.这种错误的"错误提示"也是比较常见吧, 当解释到某一条语句发生错误时, 不一定准确的指示出错误位置, 而是错误之前的那一步.
      

  5.   

    我觉得用JQuery最好了..
    它有筛选器...