我试图用DOM元素随机化一个数组,如下所示:
var allTargets=$('#target1, #target2, #target3, #target4');
var randomTargets=null;
randomTargets = allTargets[Math.floor(Math.random() * allTargets.length)];
console.log(randomTargets);
在控制台中,我可以看到每次刷新页面时都会对数组进行洗牌。但是当我尝试使用randomTargets变量触发方法时,程序崩溃了。像这样:
randomTargets.hide();
但是如果没有随机变量,程序就会起作用:
var allTargets=$('#target1, #target2, #target3, #target4');
allTargets.hide();
我做错了什么?
答案 0 :(得分:1)
也许你的意思是这不会改变,只是隐藏一个基于从0到所有目标长度的随机数的随机元素
var $allTargets = $('#target1, #target2, #target3, #target4');
var rnd = Math.floor(Math.random() * allTargets.length);
$allTargets.eq(rnd).hide();
答案 1 :(得分:0)
访问jQuery对象"像数组"为您提供了一个没有hide()
方法的原生DOM元素。
每个jQuery对象也伪装成一个数组,所以我们可以使用 数组解除引用运算符来获取列表项:
console.log( $( "li" )[ 0 ] );
因此,在您的情况下$(randomTargets).hide();
将起作用。