删除随机项目,

时间:2012-05-24 23:26:07

标签: javascript jquery

我有一个静态页面,页面顶部包含10个图像,页面后面有10个图像。我随机想要显示4个图像(我找到了解决方案),但我不确定如何将这些图像与后面的文本div相匹配,因为我应该隐藏/显示关于图像的段落

html:

<div id="images">
 <div><img src="img1"></div>
 <div><img src="img2"></div>
 ...
 <div><img src="img10"></div>
</div>

以及稍后的页面

<div id="text">
 <p>text about image 1</p>
 <p>text about image 2</p>
 ...
 <p>text about image 10</p>
</div>

randomElements = jQuery("#images div").get().sort(function(){ 
 return Math.round(Math.random())-0.5
}).slice(0,4)

要显示与我选择的随机图像相同的段落,我想我应该使用:nth-child()选择器。但我无法找到如何从randomElements获取子号码。

3 个答案:

答案 0 :(得分:1)

假设所有图像都存在于DOM中(并且仅显示/隐藏),那么我建议:

$('#images div:visible').each(
    function(){
        var i = $(this).index()
        $('#text p').eq(i).show();
    });

参考文献:

答案 1 :(得分:0)

您可以使用.index()查找与包含图片的div标签对齐的段落标记。创建一个函数,它获得1到10之间的六个随机,唯一的整数;使用jquery删除带有该索引的div和段落标记。

答案 2 :(得分:0)

如果可以的话,我会重新排列你的HTML。这更加语义友好,您当前的随机选择应该仍然有效。

<div id="images">
  <div>
    <img src="img1">
    <p>text about image 1</p>
  </div>
  <div>
    <img src="img2">
    <p>text about image 2</p>
  </div>
  ...
  <div>
    <img src="img10">
    <p>text about image 10</p>
  </div>
</div>