0

好的,我有几个功能。我不认为他们中的大多数是相关的。我想要做的是在单击按钮时创建一个 html 列表,并将值存储在一个数组中。但是,我希望能够在不再次输出整个数组的情况下更新此列表。我将它设置为接受输入,我可以让它循环并打印数组,但它会打印整个数组,我只想要一个。这似乎很常见,但我的 Google-fu 什么也没返回。

所以我有一个连接到输入的列表变量,将它记录到一个数组中,还有另一个函数来清除它并打印出值。

代码片段:

var listItemInput= document.getElementByID("listItem");
var listItem= [];

function insertListItem(){
listItem.push(listItemInput.value);
clearAndShow();
}

function clearAndShow(){
listItemInput.value= "";
}
function printList{
   for (var i = 0; i < listItem.length; i++){
document.getElementById("list").innerHTML += '<li>' + listItem[i] + '</li>';
}

当通过按下按钮调用 printList 函数时,它会打印整个数组,但是我想要一个简单地打印最新项目的按钮。我怎么能那样做?

为了澄清起见,我需要将列表打印到 html 并将值存储在数组中,稍后将在 if else 参数中引用这些值,以将它们与新变量组合并打印。

编辑:我插入了 var = lastIndex 并对其进行了更改,并为我的列表添加了另外两个变量。这似乎使它起作用。谢谢你。

4

2 回答 2

3

您可以跟踪打印的最后一个索引。

var listItemInput= document.getElementByID("listItem");
var listItem = [];
var lastIndex = 0; //Keep track of the last index shown.

function insertListItem() {
    listItem.push(listItemInput.value);
    clearAndShow();
}

function clearAndShow() {
    listItemInput.value = "";
}

function printList() {
    for (; lastIndex < listItem.length; lastIndex++) {
       document.getElementById("list").innerHTML += '<li>' + listItem[lastIndex] + '</li>';
    }
}

这种方法假设您不会从listItem数组中删除项目,您没有表达的是可以完成的事情。

于 2013-09-13T18:45:08.213 回答
0

如果你只想要一个元素,为什么需要迭代?

function printList() {
    document.getElementById('list').innerHTML = '<li>' + listItem[listItem.length-1] + '</li>';
}
于 2013-09-13T18:45:48.640 回答