我对javascript/jQuery很陌生,所以如果这是一个非常基本的问题,我深表歉意。
我有一个变量,它使用 Math.random 从数组中选择 9 个潜在类之一,这些类是相同的,只是末尾的数字 1-9 不同。我想使用 javascript 来检查是否所有具有此类的元素都被隐藏了。当我实际指定类时,我可以让它检查是否所有div 都被隐藏了,但不确定如何使用变量或表达式执行此操作。以下是我目前使用的,仅在指定div 时才有效。
if ($('div.item9:visible').length == 0)
我以为这样的事情会做我想做的事,但它似乎不起作用。
if ($(variable + ':visible').length == 0)
编辑:如果($(变量+':可见').length == 0)这确实有效,我在页面上有另一个带有此类的div,我没有意识到,因此总是有一个未隐藏的元素,感谢大家的帮助。
您可以在类名中使用相同的变量,例如,用于从 1-9 中选择数字
var x = Math.floor(Math.random() * (10 - 1) + 1);
这将生成一个介于 1-10 之间的随机整数,然后您只需在类名中添加 x 即可喜欢这个
if ($('div.item'+x+':visible').length == 0)
干杯!
试试这个:
var elements = [1,2,3,4,5,6,7,8,9];
function getRandomClassNumber(){
//will give you random index
var index = Math.floor((Math.random()*elements.length));
return (elements[index]);
}
$("#btnRandom").on("click",function(){
var classNumber = getRandomClassNumber();
if($(".item"+classNumber).is(":visible")){
alert("item" + classNumber + " is visible");
}else{
alert("item" + classNumber + " not visible");
}
});
在这里工作小提琴:http://jsfiddle.net/6neFA/