Javascript 如何从无序列表中删除列表元素?
我正在创建一个可滚动的消息日志来记录基于回合的格斗游戏的事件历史,但我不希望消息日志跨越10条以上的消息。但是,由于某些原因,在多次调用函数后,它不会从列表中删除第0个列表元素(每当计数达到10以上时)。相反,它会将它们堆积在列表的底部,从而将滚动菜单扩展到不合理的长度。我有很多问题:Javascript 如何从无序列表中删除列表元素?,javascript,html,Javascript,Html,我正在创建一个可滚动的消息日志来记录基于回合的格斗游戏的事件历史,但我不希望消息日志跨越10条以上的消息。但是,由于某些原因,在多次调用函数后,它不会从列表中删除第0个列表元素(每当计数达到10以上时)。相反,它会将它们堆积在列表的底部,从而将滚动菜单扩展到不合理的长度。我有很多问题: 我该如何解决这个问题/是否有其他方法删除列表 无序列表中的元素。。。我想可能是因为我 将列表放在“导航”标签内 是否有其他方法可以创建可滚动的消息日志 这个滚动消息日志有没有办法放置新的 整体位于顶部,因此它将历
这是因为
count
变量是局部作用域,并且每次调用函数时都将其初始化为1
(因此它永远不会达到10
限制)
请尝试以下方法:
var count = 0;
function updateBattleLog(x) {
count++;
// ...
}
参见
var count=count+1代码>应该抛出一个错误…@evolutionxbox,它不会抛出,因为var count
已被提升。实际表达式的计算结果为undefined+1
,即NaN
Ah right。。。我使用了一个导致错误的返回进行了测试。哇,谢谢-它工作正常!哈哈,我现在对错过这个感到很傻!
function updateBattleLog(x) {
var count = count+1;
var node = document.createElement("LI");
var textnode = document.createTextNode(x);
node.appendChild(textnode);
document.getElementById("battleLog").appendChild(node);
if (count > 10) {
var list = document.getElementById("battleLog");
list.removeChild(list.childNodes[0]);
count = count-1;
}
}
var count = 0;
function updateBattleLog(x) {
count++;
// ...
}