如何使用jquery随机删除同一类的元素
How to randomly remove elements of same class using jquery
我有大约72个class="box"分区
这些是一些黑色的方框,覆盖了我的整个页面,我想在我的功能完成后,一个接一个地随机删除这些分区。
以下是我正在做的随机删除这些盒子,
function removeBoxes(){
var erase;
//var to store the length of array of divisions
var total = $(".box").length;
while(total > 0)
{
//generating a random number
erase = Math.floor(Math.random() * total);
$(".box").eq(erase).fadeOut(10000, function(){
$(this).remove();
});
total = $(".box").length;
}
}
稍后,我还会在两次移除之间添加一些时间延迟,但现在我只想知道如何逐个移除这些框。
一个小插件怎么样:
(function($) {
$.fn.random = function() {
var n = this.length;
var r = Math.floor(n * Math.random());
return n ? $(this[r]) : $();
};
})(jQuery);
用法:
(function iterate() {
$('.box').random().fadeOut(1000, function() {
$(this).remove();
iterate();
});
})();
元素将一次消失一个,当不再有.box
元素时,循环将自动终止。
请参阅http://jsfiddle.net/alnitak/cddhL/用于演示。
function removeBoxes(){
var total = $(".box").length - 1;
var randomnumber = Math.floor(Math.random()*total);
jQuery(".box:eq('"+randomnumer+"')").fadeOut(1000, function() {
$(this).remove();
});
}
//这是为了每5秒删除DIV
setInterval(function(){
removeBoxes();
}, 5000);
我希望这能有所帮助:(
您都知道如何在淡出后触发某个东西,即在回调中执行,在回调中您都准备好移除框。不使用循环,而是编写一个只删除一个随机框的函数,并在回调中调用它。
示例:
function removeRandomBox() {
var boxes = $(".box"); // don't repeatedly search for the boxes
var total = boxes.length;
if (length > 0) {
var erase = Math.floor(Math.random() * total);
boxes.eq(erase).fadeOut(10000, function(){
$(this).remove();
removeRandomBox();
});
}
}
相关文章:
- 如何按id查找两个类中任一类的子元素
- 不能对包含同一类的所有元素使用.replacement()
- 如何从同一元素中删除同一类
- 对同一类中的所有元素单击一次
- 向下滚动后如何用同一类逐个删除元素
- 单独检测共享同一类的元素
- 获取元素的第一类
- 在jQuery中,如何测试一个元素是否是同一类的多个元素中的第一个
- 将水印添加到具有一类水印的所有输入元素
- 如何使用javascript欺骗拖动同一类的所有元素
- 如何将样式应用于类的单个元素,同时从同一类的前一个元素中删除样式
- jQuery .text() 在同一类中的多个元素上
- 查找类为'的元素;x',忽略那些有class的'x'和另一类
- 如何从 jquery 中属于同一类成员的元素中获取所有不同的值
- 只在
- 的第一个子元素上应用JQuery属于某一类的
- 使用JavaScript,如何将相同的文本写入多个HTML元素,或者如何将文本写入同一类的所有HTML元素
- 如何为同一类的多个元素设置不同的位置
- 删除,,从同一类的所有元素中获取
- 获取同一类元素中的图像属性
- 单击任意img时隐藏一类元素