我正试图找到一种方法,使用jquery从Web上的某个div中删除变量。 这不涉及使用数组。如果我可以使用fadeIn()
或search()
和remove()
,那就更好了。
var something = '#img' + count;
在网络上,图片将随着时间的推移添加到div(使用setTimeout
)。这些图像已分配给变量(something
),我需要找到一种方法将其从网络上的某个div中删除。它可以隐藏,移除,无论如何,它必须随机地从用户的视图中消失(时间和哪个图像将消失)。
感谢您的帮助和提前的时间。
我的功能代码:
var count = 0;
function foo() {
var xPos = xPosition();
var yPos = yPosition();
var someTime;
$("div").append('<img id="Img" ' + count + ' src = "img.png" style="top:' + yPos + 'px; left: ' + xPos + 'px; " />');
var something = "#Img" + count;
someTime = setTimeout('foo()', randInterval());
$(something).hide();
count++;
if (timeRemaining == 0) {
clearTimeout(someTime);
return;
}
答案 0 :(得分:0)
请永远不要在身份证上附加一个数字,并将编号的名称拼凑在一起。这是不可维护和糟糕的。使用class
。
通过向元素添加类名为一个或多个元素指定目的或功能。如果要向元素添加信息,那很好,请在属性名称上使用data-
前缀,这一切都是合法的。 data-itemid
就是一个例子。
您可以查询匹配的元素var those = $('.that-class-name')
,以便重复使用。在那里,您可以使用those.eq(0)
到those.eq(x.length - 1)
访问各个元素。例如,如果您以某种方式知道需要删除第3个,那么those.eq(3).remove();
。如果您想挑选它们并且只选择符合条件的那些,请使用those.filter(callback).remove()
,如果callback
引用的元素应被删除,则true
会返回this
。如果您想使用其他选择器对其进行过滤,.filter
也会接受选择器。
这是你的意思吗?
答案 1 :(得分:0)
将所有图像分类。然后,您可以使用$(".class").length()
获取图片数量,在此范围内选择一个随机数,然后使用.eq()
删除该元素。
function addImage() {
var xPos = xPosition();
var yPos = yPosition();
$("div").append($("<img>", {
src: "img.png",
"class": "imageclass",
style: {
top: yPos+"px",
left: xPos+"px"
}
}));
setTimeout(addImage, randInterval());
}
setTimeout(addImage, randInterval());
function removeImage() {
var images = $(".imageclass");
if (images.length) {
var rand = Math.floor(Math.random() * images.length);
images.eq(rand).remove();
}
setTimeout(removeImage, randInterval());
}
setTimeout(removeImage, randInterval());
在我的代码中,我使用单独的计时器来添加和删除图像。如果您愿意,可以从setTimeout
移除removeImage()
,然后从addImage
调用它,这样每当它添加新图片时,它都会删除图片。