繁体   English   中英

如何遍历数组并在jquery中单击时打印出带有类的元素?

[英]How to loop through array and print out elements with a class on click in jquery?

单击div #background时,该数组具有要在屏幕上逐一显示的值,但是单击它时淡出并生成一个新元素。 现在它会产生元素,但它们不会消失并且不会褪色? 我正在使用jQuery,对此非常新!

$(document).ready(function(){
        var arr = ["hello", "hi", "what is up"];
        $.each(arr, function(i, val){
            $("#background").click(function(){
            var element = "<h1>" + val + "</h1>";
            $(".contain").fadeIn("slow").append(element);
            $(element).remove();
            });
      });
    });

尝试仅设置一次回调:

$(document).ready(function(){
    var arr = ["hello", "hi", "what is up"];
    var i = 0;
    $("#background").click(function(){
        var element = $( "<h1 style='display:none'>" + arr[i] + "</h1>" );
        $(".contain").html(element);
        element.fadeIn("slow")
        i =(i+1)  % arr.length;
    });
});

HTML

<body>
<div id='background'>  <div class="contain">  click me  </div> </div>
</body>

单击此处运行实时示例。

这个想法是您将一次显示数组中的每个元素。 计数器将对循环显示的元素数进行计数(这意味着一旦显示了数组中的所有元素,它将被重置为第一个)。 您将需要以下代码:

HTML:

<div id="background">
  <div class="contain">
    <div></div>
  </div>
</div>

CSS:

#background {
  height: 500px;
}

.contain {
  height: 200px;
  background-color: #ccc;
}

jQuery的:

$(document).ready(function() {
  var arr = ["hello", "hi", "what is up"];
  var currentKey = 0;
  $("#background").click(function() {
    //alert("CurrentKey : " + currentKey);
    $(".contain").html(" " + arr[currentKey] + " ").hide().fadeIn(600);
    if (currentKey === (arr.length - 1)) {
      currentKey = 0;
    } else {
      currentKey = currentKey + 1;
    }
  });
});

您可以运行下面的代码片段以查看此内容:

 $(document).ready(function() { var arr = ["hello", "hi", "what is up"]; var currentKey = 0; $("#background").click(function() { //alert("CurrentKey : " + currentKey); $(".contain").html(" " + arr[currentKey] + " ").hide().fadeIn(600); if (currentKey === (arr.length - 1)) { currentKey = 0; } else { currentKey = currentKey + 1; } }); }); 
 #background { height: 500px; } .contain { height: 200px; background-color: #ccc; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> <div id="background"> <div class="contain"> <div></div> </div> </div> 

如果您愿意的话,这也是JS Fiddle链接

暂无
暂无

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

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