如何在每个函数调用中添加新段落

时间:2016-06-16 11:40:43

标签: javascript

我只获得最后一个列表如何获得三个列表 我认为错误在

元素中。我试图通过变量' pid'在每次函数调用时更改它。所以我可以得到三个清单。 任何人都可以指导我 代码如下,

<script>
var fruits = [];
for (i = 0; i < 5; i++) {
    fruits[i] = prompt("please enter the name of fruit " + (i + 1));

    }
    document.write("Fruits in unordered form are: " + fruits + "<br>");
function writeList (pid, heading, fruits) {
    var showList = "<ul>";
    for (i = 0; i <fruits.length; i++) {
        showList += "<li>" + fruits[i] + "</li><br>";       
        }
        showList += "</ul>";
    document.write("<p id='pid'></p>");     
    document.getElementById("pid").innerHTML = heading + " list of fruits is: <br>" + showList;
        }
writeList (1, "un sorted", fruits);
    fruits.sort();
    document.write("Fruits in ascending order are: "+ fruits + "<br>");
    writeList (2, "Sorted", fruits);
    fruits.reverse();
    document.write("Fruits in descending order are: " + fruits);
    writeList (3, "Descending", fruits);
</script>

2 个答案:

答案 0 :(得分:0)

根据doc

  

写入已经加载但未调用的文档   document.open()将自动执行document.open调用。

这就是document.open()做的事情

  

如果目标中存在文档,则此方法将其清除(请参阅   上面的例子)。

此外,元素的id必须在整个文档中是唯一的。

document.getElementById("pid").innerHTML将始终只引用一个元素。

简单地替换

document.write ("<p id='pid'></p>")

document.body.innerHTML += "<p data-id='pid'></p>"

类似地,其他document.write替换为document.body.innerHTML版本。

同时替换

document.getElementById("pid").innerHTML

document.querySelector("[data-id='pid']:last-child").innerHTML

答案 1 :(得分:0)

函数调用中有一个空格,请更改:

writeList (1, "un sorted", fruits);

为此:

writeList(1, "un sorted", fruits);