繁体   English   中英

随机div,请帮帮我

[英]Random div ,help me please

这段代码正常工作,它显示5个带有相应文本的随机图像。我的问题是我想将文本分成另一个div,以便可以向其添加另一个功能,但是我仍然希望图像随机带有相应的文本。

<script type="text/javascript">
/*<![CDATA[*/
$(document).ready(function() {
    $(".Image").hide();

    var elements = $(".Image");
    var elementCount = elements.size();
    var elementsToShow = 5;
    var alreadyChoosen = ",";
    var i = 0;
    while (i < elementsToShow) {
        var rand = Math.floor(Math.random() * elementCount);
        if (alreadyChoosen.indexOf("," + rand + ",") < 0) {
            alreadyChoosen += rand + ",";
            elements.eq(rand).show();
            ++i;
        }
    }
});

/*]]>*/
</script>

<div class="Image"><img   src="image1"/><text id="id1">1</text></div>
<div class="Image"><img   src="image2"/><text id="id2">2</text></div>
<div class="Image"><img   src="image3"/><text id="id3">3</text></div>
<div class="Image"><img   src="image4"/><text id="id4">4</text></div>
<div class="Image"><img   src="image5"/><text id="id5">5</text></div>
<div class="Image"><img   src="image6"/><text id="id6">6</text></div>
<div class="Image"><img   src="image7"/><text id="id7">7</text></div>
<div class="Image"><img   src="image8"/><text id="id8">8</text></div>

通常,您违反了许多最佳做法。 text不是有效的标签。 是否有任何理由将文本分隔到另一个div中? 有什么理由显示所有元素,隐藏它们并比仅随机显示5个(您可以直接随机仅显示5个)吗?

但是,您可以这样解决:

<div class="image image1"><img src="image1"/></div>
<div class="text text1"><text id="id1">1</text></div>

<div class="image image2"><img src="image2"/></div>
<div class="text text2"><text id="id2">2</text></div>

并且比在JS上隐藏图像和文本:

$(".image").hide();
$(".text").hide();

并且比代替elements.eq(rand).show(); 您可以根据ID选择:

$(".image"+(rand+1)).show(); // rand+1 because rand can be [0,8) in your case
$(".text"+(rand+1)).show();

或者,如果可以将始终合并在一起的元素包装为一个包装,则更好。

希望这可以帮助

 <div class="Image"><img width="200" height="200" src="1.jpg"/><div id="id1">1</text></div> <div class="Image"><img width="200" height="200" src="2.jpg"/><div id="id2">2</text></div> <div class="Image"><img width="200" height="200" src="3.jpg"/><div id="id3">3</text></div> <div class="Image"><img width="200" height="200" src="4.jpg"/><div id="id4">4</text></div> <div class="Image"><img width="200" height="200" src="5.jpg"/><div id="id5">5</text></div> <div class="Image"><img width="200" height="200" src="6.jpg"/><div id="id6">6</text></div> <div class="Image"><img width="200" height="200" src="7.jpg"/><div id="id7">7</text></div> <div class="Image"><img width="200" height="200" src="8.jpg"/><div id="id8">8</text></div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM