0

编辑:下面是新代码。下面是原始问题。我正在就这段代码的问题寻求帮助,因为在我一周大的眼中,它似乎很好。

function creatediv(){

    for (i=1;i<13;i++){
        var newcovdiv = document.createElement('div');
        newcovdiv.setAttribute('id',"cover_"+i);
        newcovdiv.style.width="900px";
        newcovdiv.style.height="25px";
        newcovdiv.style.position="relative";
        newcovdiv.style.left="0px";
        newcovdiv.style.top=(i-1)*25+"px";
        newcovdiv.style.background="#FFFFFF";
        newcovdiv.style.display="none";
        document.getElementById('staff').appendChild(newcovdiv);
    }

    var newstaffdiv = document.createElement('div');
    newstaffdiv.setAttribute('id',"staff_sub");
    newstaffdiv.style.width="900px";
    newstaffdiv.style.height="300px";
    newstaffdiv.style.position="relative";
    newstaffdiv.style.left="0px";
    newstaffdiv.style.top="0px";
    newstaffdiv.style.backgroundImage="url(../images/staff_sub.png)";
    newstaffdiv.style.display="none";
    document.getElementbyId('staff').appendChild(newstaffdiv);

    for (i=13;i<101;i++){
        var newcovrdiv = document.createElement('div');
        newcovrdiv.setAttribute('id',"cover_"+i);
        newcovrdiv.style.width="900px";
        newcovrdiv.style.height="25px";
        newcovrdiv.style.position="relative";
        newcovrdiv.style.left="0px";
        newcovrdiv.style.top=(i-1)*25+"px";
        newcovrdiv.style.background="#FFFFFF";
        newcovrdiv.style.display="none";
        document.getElementById('paper').appendChild(newcovrdiv);
    }

}

到目前为止,这个地方非常有帮助。

我刚开始学习 Javascript,语法一直让我着迷。我找到了一个动态创建 div 元素的 javascript 函数的示例,并且我尝试在我的代码中实现它,但发现了错误 - 但不是我。我不知道代码哪里不好。有人可以指出什么语法(或更糟)是错误的吗?

我用

<body onload="creatediv()">

这是javascript函数:

function creatediv(){

    for (i=1;i<13;i++){
        var newcovdiv = document.createElement('div');
        newcovdiv.setAttribute('id',"cover_"+i);
        newcovdiv.style.width=900;
        newcovdiv.style.height=25;
        newcovdiv.style.position="relative";
        newcovdiv.style.left=0;
        newcovdiv.style.top=(i-1)*25;
        newcovdiv.style.background="#FFFFFF";
        newcovdiv.style.display="none";
        document.getElementById('staff').appendChild(newcovdiv);
    }

    var newstaffdiv = document.createElement('div');
    newstaffdiv.setAttribute('id',"staff_sub");
    newstaffdiv.style.width=900;
    newstaffdiv.style.height=300;
    newstaffdiv.style.position="relative";
    newstaffdiv.style.left=0;
    newstaffdiv.style.top=0;
    newstaffdiv.style.background-image="url(../images/staff_sub.png);
    newstaffdiv.style.display="none";
    document.getElementbyId('staff').appendChild(newstaffdiv);

    for (i=13;i<101;i++){
        var newcovrdiv = document.createElement('div');
        newcovrdiv.setAttribute('id',"cover_"+i);
        newcovrdiv.style.width=900;
        newcovrdiv.style.height=25;
        newcovrdiv.style.position="relative";
        newcovrdiv.style.left=0;
        newcovrdiv.style.top=(i-1)*25;
        newcovrdiv.style.background="#FFFFFF";
        newcovrdiv.style.display="none";
        document.getElementById('paper').appendChild(newcovrdiv);
    }

}

已经有 ID 为“paper”和“staff”的 div。这是我第一次使用 appendChild 的东西,所以我认为问题可能就在那里。

这很麻烦。我会感谢任何试图帮助我的人。

非常感谢。

4

2 回答 2

1

您的代码有一些明显的问题:

1)你不能使用背景图片,因为属性名称在使用点形式时不能连字符,而且它缺少一个“。

style.backgroundImage

2)所有的数值类型属性(top、left、width、height)都应该是css字符串,所以都需要转换成

style.width = '900px'

3)您的onload函数调用creatediv(),但是您发布的函数称为letsgetiton,不确定这是否只是因为您发布它的方式或它在您的实际代码中的方式。

4) document.getElement* B *yId 案例很重要

您可能想查看 Chrome 开发人员工具或 firefox 中的 firebug。该错误会立即弹出。

于 2012-08-15T01:31:52.107 回答
1

我注意到两个问题:


以下代码行试图访问无效属性并且没有右引号。

newstaffdiv.style.background-image="url(../images/staff_sub.png);

它应该是这样的:

newstaffdiv.style.backgroundImage="url(../images/staff_sub.png)";

您正在调用 function createDiv(),但提供的函数名为letsgetiton()

于 2012-08-15T01:32:43.850 回答