2

此代码旨在将项目项显示为按钮上方的 div 中的列表,但是,尽管按钮和提示有效,但 div 中没有显示文本。帮助!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title>Shopping List</title>
        <style>
            #button {
                width:80px;
                height:30px;
            }
            div.ex {
                width:500;
                height:500;
            }
        </style>
        <script>
            function a() {
                var thing = prompt('Insert an item or press cancel');

                if (thing != null && thing != undefined) {
                    document.getElementById('b') += thing;
                }
                else {
                }
            }
        </script>
    </head>
    <body>
        <div class='ex' style="color:#007AFC"></div>
        <button onclick='a()' id='button'>Add Item</button>
    </body>
</html>
4

4 回答 4

0

我有一个显示它工作的小提琴。相关的javascript如下:

document.getElementById('addButton').addEventListener("click", addListItem, false);

function addListItem(){
    var thing=prompt('Insert an item or press cancel') + "<br />";
    if(thing!=null&&thing!=undefined){
        document.getElementById('listDiv').innerHTML += thing;
    }
}

旁注:尽量远离内联样式和脚本。它使维护变得更加困难。

于 2013-10-25T16:27:38.983 回答
0

首先,您正在使用document.getElementById('b')但是您没有带有id="b". 其次,您不能仅使用+=运算符来更改元素的 HTML 内容。您需要innerHTML像这样修改属性:

 document.getElementById('b').innerHTML += thing;

此外,您需要有一个 HTML 元素,id="b"如下所示:

 <div id="b" class='ex' style="color:#007AFC"></div>

但是,请考虑为id.

于 2013-10-25T16:16:40.140 回答
0

你真的可以用“+=”添加文本!?我会尝试使用append()

以及 sushain97 所说的:为元素添加一个 id (id="b")。但是如果你想一个接一个地添加更多的项目,你需要使用 append(),而不是 innerHTML(),因为 innerHTML() 会替换所有的内容。

于 2013-10-25T16:18:17.363 回答
0

html:

<div class='ex' style="color:#007AFC" id="b"></div>

js:

document.getElementById('b').innerHTML+=thing;
于 2013-10-25T16:21:58.240 回答