3 回答
TA贡献1835条经验 获得超7个赞
我修复的事情:摆脱函数listAdd并将代码直接移动到if子句中,重命名test为list(错误命名的变量),并将脚本移动到正文中,以便在运行时存在 html 节点。
<!DOCTYPE = html>
<head>
</head>
<body>
<strong>Your two items:</strong>
<ol id="list">
</ol>
<script type = "text/javascript">
var list = document.getElementById('list');
var item1 = window.prompt("Enter first item:");
if (item1 != null) {
var entry = document.createElement('li');
entry.appendChild(document.createTextNode(item1));
list.appendChild(entry);
}
var item2 = window.prompt("Enter second item");
if (item2 != null) {
var entry = document.createElement('li');
entry.appendChild(document.createTextNode(item2));
list.appendChild(entry);
}
</script>
</body>
您的代码将函数包装在 if 中。这是不对的——你是在那儿声明函数,而不是运行它。结果是什么都没有发生。您可以通过先声明函数来稍微改进代码listAdd
,然后在每次提示后调用它,并从提示中传递参数。
TA贡献1842条经验 获得超21个赞
您可以尝试删除该函数并错误地设置list.appendChild(entry)而不是test.appendChild(entry)因为我们调用了有序列表项 id 并将其设置为test变量。
<!DOCTYPE=html>
<body>
<strong>Your two items:</strong>
<ol id="list" >
</ol>
<script type = "text/javascript">
var test = document.getElementById('list');
var item1 = window.prompt("Enter first item:");
var item2 = window.prompt("Enter second item");
if (item1 != null ) {
var entry = document.createElement('li');
entry.appendChild(document.createTextNode(item1));
test.appendChild(entry);
}
if (item2 != null ) {
var entry = document.createElement('li');
entry.appendChild(document.createTextNode(item2));
test.appendChild(entry);
}
</script>
</body>
TA贡献1826条经验 获得超6个赞
var value1 = document.getElementById('list');
var value1 = window.prompt("Enter first item:");
if (value1 != null) {
listAdd(value1);
}
var value2 = window.prompt("Enter second item");
if (value2 != null) {
listAdd(value2);
}
function listAdd(textValue) {
var entry = document.createElement('li');
entry.appendChild(document.createTextNode(textValue));
list.appendChild(entry);
}
<!DOCTYPE = html>
<head>
</head>
<body>
<strong>Your two items:</strong>
<ol id="list">
</ol>
</body>
创建了一个通用函数来在列表中添加值:这也用于减少代码。
添加回答
举报