如何将项添加到动态列表的顶部

时间:2010-06-13 13:01:26

标签: javascript html

与标题状态一样,那里的任何人都有明确的方法来实现这种类型的功能吗?

实施例: 如果你转到http://weewar.com,你会在他们的首页注意到一个每秒都会更新的ajax模块。但是,所有新项目都会添加到列表顶部。我的问题围绕着同样的功能。

有没有人对如何实现此功能有一个简单明了的想法?

到目前为止,我有一个最初创建列表的方法,然后在从服务器中提取最新数据的时间间隔中调用另一个方法。

但是,我一直坚持,如何将新的动态节点添加到列表的顶部。

如果你可以引导我到我能找到这些信息的地方,或者让我知道如何实现这一点,我将非常高兴和感激。

3 个答案:

答案 0 :(得分:7)

jQuery会让你很轻松。这是一个例子:

<强>的jQuery

$(document).ready(function(){
  $('<div>News 1</div>').prependTo('#textbox');
  $('<div>News 2</div>').prependTo('#textbox');
  $('<div>News 3</div>').prependTo('#textbox');
  $('<div>News 4</div>').prependTo('#textbox');
});

<强> HTML

<div id="textbox"></div>

<强>输出

News 4
News 3
News 2
News 1

正如您所看到的,首先添加的新闻会被推倒。

答案 1 :(得分:2)

如果您使用jQuery,可以使用jQuery('#list_ID:first-child').prepend(new_item);

如果你想用旧式的方式做document.getElementById('list_ID').innerHTML = new_item + document.getElementById('list_ID').innerHTML;

或者您可以使用更友好的DOM方法:

var list_item = document.createElement('li'); list_item.innerHTML="Some Text" document.getElementById('list_ID').insertBefore(list_item, document.getElementById('list_ID').firstChild);

答案 2 :(得分:0)

一种方法是使用javascript重新创建列表。它像list.items = newitem + list.items。很抱歉写一个概念伪代码。如果您需要知道确切的javascript,请给我回复/评论。

您也可以通过以下方式实现相同的内容:

var m =document.getElementById(listElement).options.length;
for(var i = m; i>= 0 ; i = i-1) 
    document.getElementById(cmbCategory).options[i] = document.getElementById(cmbCategory).options[i-1];
var opt2 = new Option();
opt2.value="100"; /*new value */
opt2.text="New option text";
document.getElementById(listElement).options[document.getElementById(listElement).options.length] = opt2;