Я очень новичок в javascript/jQuery, так что извиняюсь, если это очень простой вопрос.
У меня есть переменная, которая использует Math.random для выбора одного из 9 потенциальных классов из массива, классы одинаковы, за исключением другого числа 1-9 в конце. Я хочу использовать javascript, чтобы проверить, скрыты ли все элементы этого класса. Я могу получить его, чтобы проверить, скрыты ли все divs, когда я на самом деле указываю класс, но не знаю, как это сделать с переменной или выражением. Ниже я использую данный момент, который работает только тогда, когда указан div.
if ($('div.item9:visible').length == 0)
Я предположил, что что-то вроде этого будет делать то, что я хочу, но он, похоже, не работает.
if ($(variable + ':visible').length == 0)
EDIT: if ($ (variable + ': visible'). 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/