1
function randomEmoji() {
  var emojis = [
    ':)', ':(', '=D', 'xD', 'o_O', ':|', ':-O', ':$'
  ];
  return emojis[ Math.floor( Math.random() * emojis.length ) ];
}
function textscroll(){
  $('.messages').append("<li>" + randomEmoji() + "</li>");
}
setInterval(textscroll,3000);
function scroll(){
$('.messages').children().hide();
}
setInterval(scroll,5900);

如您所见,我的代码每 3 秒将一个随机表情符号附加到 .messages(我的 HTML 文件中的无序列表)。如何限制它只显示 10 个最近的表情符号?我试图隐藏列表并在添加新列表时显示它。它不仅不这样做,它还会继续在页面下方列出它们。我不知道接下来要做什么,这不是家庭作业或任何真正有价值的东西,只是一个奇怪的问题,过去几天让我发疯。除了使用 .hide() 之外还有其他方法吗?我觉得每 4 秒使用 .hide() 对眼睛来说有点困难。我搜索了 MDN 以找到要在我的代码中实现的东西,但没有运气。

4

3 回答 3

2

在您附加一个随机表情符号后,只需检查列表项的计数,如果超过 10 个,则删除第一个,您将全部设置好。

function textscroll () {
    $('.messages').append("<li>" + randomEmoji() + "</li>");
    if ( $('.messages li').length > 10 ) {
        $('.messages li').first().remove();
    }
}
于 2013-11-07T01:34:43.930 回答
0

人力资源管理系统。我想在这种情况下我会做的是查看列表的长度。如果列表的长度> 10。只需删除第一个元素。如果您出于某种原因想要跟踪所有表情符号,但只显示最近的十个,您可能会有类似的逻辑,但您可以选择列表中没有的第一个元素,而不是删除第一个元素一些自定义类...说您创建的“last10”,然后在将项目添加到列表时将该类附加到该项目...然后您只需显示所有具有“last10”类的项目。

更具体地说:您将寻找一个没有“last10”类的项目附加该类,然后隐藏该项目。

于 2013-11-07T01:38:00.197 回答
0

尝试这样的事情(http://jsfiddle.net/3CBKP/1/):

每次添加新列表项时,检查长度以查看它是否超过限制:

var messageLimit = 10;

function randomEmoji() {
  var emojis = [
    ':)', ':(', '=D', 'xD', 'o_O', ':|', ':-O', ':$'
  ];

  return emojis[ Math.floor( Math.random() * emojis.length ) ];
}

function textscroll(){
  var $messages = $('.messages');
  var $children = $messages.children();

  $messages.append("<li>" + randomEmoji() + "</li>");

  if($children.length > messageLimit) {
    // there are too many, remove the oldest
    $children.first().remove();
  }
}

setInterval(textscroll, 100);
于 2013-11-07T01:39:43.377 回答