查找隐藏的元素并将它们存储在数组中
Find hidden elements and store them in an array
我有一些这样的标记:
<div class="slideshow">
<div class="slide" style="display:block;"></div>
<div class="slide" style="display:none;"></div>
<div class="slide" style="display:none;"></div>
<div class="slide" style="display:none;"></div>
</div>
这基本上是一些div,其中一个显示,另一个隐藏。
我试图找到目前没有显示的,然后随机选择其中一个。。。
var length = $('div.slideshow').find('div.slide:hidden').length;
var ran = Math.floor(Math.random()*length) + 1;
var newSlide = $("div.slideshow > div.slide:nth-child(" + ran + ")");
然而,因为它们是多个隐藏的div,所以不起作用。。。我想我需要设置一个数组?有人能帮我吗,因为我有点困惑。
试试下面的
演示
var $hiddenSlides = $('div.slideshow').find('div.slide:hidden');
var length = $hiddenSlides.length;
var ran = Math.floor(Math.random()*length );
var newSlide = $hiddenSlides.get(ran);
这个怎么样:
var $hiddenSlides = $('div.slideshow').find('div.slide:hidden');
var ran = Math.floor(Math.random()*$hiddenSlides.length);
var newSlide = $hiddenSlides.get(ran);
$("div.slideshow > div.slide:nth-child(" + ran + ")"
从所有子项中选择,包括已经可见的子项。你想要吗?
如果是这样,您必须使用迭代您的选择
$("div.slideshow > div.slide:nth-child(" + ran + ")").each(function() {
$(this).show();
});
这应该适用于您:
var length = $('div.slideshow').find('div.slide:hidden').length;
var ran = Math.floor(Math.random()*length);
var newSlide = $(".slideshow .slide:hidden:eq(" + ran + ")");
您将在jsFiddle中看到,输出始终是隐藏的div之一。
说明:
它不会起作用,因为元素的顺序没有得到保证,为什么不使用您应用的相同选择器来迭代元素以查找隐藏的元素呢?
示例:
保存可见元素:
var shownSlide = $("div.slideshow > div.slide:visible");
应用随机遍历:
var ran = Math.floor(Math.random()*length) + 1;
$("div.slideshow > div.slide:hidden:eq(" + ran + ")").show();
而不是重新隐藏可见元素:
$(shownSlide).hide();
相关文章:
- Meteor会话变量未存储数组
- 在Javascript的Textbox中存储数组中的值
- 如何保留输入复选框值的存储数组
- 如何在 localStorage 中存储数组
- 如何在打包的 chrome 应用中本地存储数组
- 如何在 html5 的本地存储对象中存储数组
- 需要循环访问 json 数据的本地存储数组中存储的 json 对象
- 在 Javascript 中创建存储数组,并在每次单击时推送元素 ID
- 根据选中的复选框存储数组元素
- 如何存储数组javascript
- 存储数组在Chrome扩展
- 什么是最有效的方式来存储数组从PHP到JS/jQuery,这样它是可重用的
- Javascript存储数组值
- 存储数组到Cookie Jquery
- Ruby在遍历函数时尝试存储数组元素
- 如何从mongodb的形式存储数组
- 如何在html中打印存储在本地存储数组中的值
- 使用Firebase存储数组
- 获取字符串格式的MySQL存储数组并转换为JSON对象的数组
- 在html attr中存储数组值的最佳实践