Javascript 使用jQuery在随机位置追加内容?
我需要在一个页面中显示一个项目列表,这个页面用AJAX更新。每次将新项目推送到客户端时,我希望它出现在我的Javascript 使用jQuery在随机位置追加内容?,javascript,jquery,random,appendto,Javascript,Jquery,Random,Appendto,我需要在一个页面中显示一个项目列表,这个页面用AJAX更新。每次将新项目推送到客户端时,我希望它出现在我的ul列表中的随机位置 下面是我所说的列表类型的一个示例: HTML 你知道如何使用jquery在列表中的任意位置添加新项吗? 我知道我可以做一些类似于$(li_元素)的事情但这会将其附加到列表的底部 另一个可能存在的问题是,每个li元素都向左浮动。因此,当在中间添加一个新元素时,该元素之后的每一个元素将向右推一个点。 我可以使用几个向左浮动的ul列表,并且这些列表相互堆叠,因此当呈现一个新
ul列表中的随机位置
下面是我所说的列表类型的一个示例:
HTML
你知道如何使用jquery在列表中的任意位置添加新项吗?
我知道我可以做一些类似于$(li_元素)的事情代码>但这会将其附加到列表的底部
另一个可能存在的问题是,每个li元素
都向左浮动。因此,当在中间添加一个新元素时,该元素之后的每一个元素将向右推一个点。
我可以使用几个向左浮动的ul列表,并且这些列表相互堆叠,因此当呈现一个新项目时,列表只需向下推,但如果我随机执行此操作,一些ul列表可能会比其他列表长,这看起来也很奇怪。尝试以下操作:
var randomNum = Math.floor(Math.random()*9);
$(".itemlist li").eq(randomNum).append("HI");
只需在javascript中创建一个随机数。然后在列表中选择该随机元素并附加新内容。除非我不理解这个问题
var $lis = $(".itemlist li");
$lis.eq(Math.floor(Math.random()*$lis.length)).after(
/* your new content here */ );
该方法附加了一个同级,因此从
项列表中选择一个随机元素,并在其上使用.after()
。或.before()
另外,关于一个新添加的项目将其他项目推向右侧,这是一个问题吗?如果列表有水平布局,这不是很正常吗?对于接受的答案,新元素永远不会作为第一个插入。可以插入的位置是元素数加一。元素之间+开始+结束
代码不是很好,但是可以修复它
var$lis=$(“.itemlist li”);
var pos=Math.floor(Math.random()*($lis.length+1))-1;
如果(位置!=-1){
$lis.eq(pos.)在(“新建” ”)之后;
}否则{
$lis.eq(0)。在(“新的第一个” ”)之前;
}
这很正常,但这就是我不确定是否使用水平布局的原因。这是最简单的方法。谢谢
var randomNum = Math.floor(Math.random()*9);
$(".itemlist li").eq(randomNum).append("HI");
var $lis = $(".itemlist li");
$lis.eq(Math.floor(Math.random()*$lis.length)).after(
/* your new content here */ );
var $lis = $(".itemlist li");
var pos = Math.floor(Math.random() * ($lis.length + 1)) - 1;
if(pos != -1){
$lis.eq(pos).after("<li>new</li>");
} else{
$lis.eq(0).before("<li>new first</li>");
}