用于使用javascript循环使用元素的id

时间:2017-11-02 14:18:55

标签: jquery html css for-loop

#saga1 {
	width: 100%;
	height: 30px;
	background: rgba(255, 132, 132, 0.29);
	border-radius: 10px;
	color: white;
	font-family: verdana;
	text-shadow: 2px 2px 10px black;
	font-size: 18px;
	text-align: center;
	line-height: 30px;
}
#ep1 {
	margin-left: 5px;
	color: white;
	font: normal 16px verdana;
}
#ep1 li {
	list-style: none;
	margin: 5px 0 5px;
	border-top: 0.5px dashed white;
	border-top-right-radius: 5px;
	border-top-left-radius: 5px;
	cursor: pointer;
	color:gray;
	padding: 2px 0 2px;
}
#ep1 li:hover {
	background:rgba(83, 3, 15, 0.29);
	color:white;
	transition: color 0.5s;
}
 <div id="saga1">Bitka Bogova</div>
            <!-- toggle show/hide video on click -->
            <!-- <script src="toggleshowhide.js"></script> -->
             <script></script> // here goes the script 
                <div id="ep1">
                    <ul id="bbogova">
                      <li id="1">Epizoda 1 - Ko će dobiti 100 miliona zenija?</li>
                      <div align="center" class=1></div>
                      <li id=2>Epizoda 2 - Vegeta ide na porodično putovanje?</li>
                        <div align="center" class=2></div>
                      <li id=3>Epizoda 3 - Traži se Super Sajonac Bog!</li>
                      <div align="center" class=3></div>
                      <li id=4>Epizoda 3 - Traže se Zmajeve Kugle!</li>
                      <div align="center" class=4></div>
                      <li id=5>Epizoda 3 - Goku protiv Birusa !</li>
                      <div align="center" class=5></div>
                      <li id="6">Epizoda 6 - Ne ljutite Boga Uništenja!</li>
                       <div align="center" class=6></div>
                      <li id=7>Epizoda 7 - Vegetin razjaren preobražaj!</li>
                      <div align="center" class=7></div>
                      <li id=8>Epizoda 8 - Poslednja šansa od Birusa?!</li>
                      <div align="center" class=8></div>
                      <li id=9>Epizoda 9 - Super Sajonac Bog je rođen!</li>
                      <div align="center" class=9></div>
                      <li id=10>Epizoda 10 - Moć Super Sajonca Boga!</li>
                      <div align="center" class=10></div>
                      <li id=11>Epizoda 11 - Bitka Bogova se nastavlja</li>
                      <div align="center" class=11></div>
                      <li id=12>Epizoda 12 - Bog uništenja protiv SS Boga.</li>
                      <div align="center" class=12></div>
                      <li id=13>Epizoda 13 - Goku, nadmaši moć Super Sajonca Boga!</li>
                      <div align="center" class=13></div>
                      <li id=14>Epizoda 14 - Bitka Bogova se završava!</li>
                      <div align="center" class=14></div>
                    </ul>

我有超过100个li元素,ID为123等等。在每个元素下面是div的类123等等。 所以我想当我点击任何“li”元素来显示/隐藏它的div。 我得到了切换显示隐藏工作,但我无法弄清楚如何使用for循环。

我试过了:

var click = 1;

for(var i =0;i<=src.length;i++)
    $("#"+i).click(function() {
        if (click == 1)
            $('.'+i).html('<IFRAME SRC="'+src[i]+'" FRAMEBORDER=0 SCROLLING=NO WIDTH=888 HEIGHT=500 allowfullscreen></IFRAME>');
        else if (click == 2) {
            $('.'+i).empty();
            click = 0;
        }

        click++;
    });
}

src是一个充满嵌入视频链接的数组

*对不起,我还在学习:D *

2 个答案:

答案 0 :(得分:2)

id与解决方案无关,只会使问题复杂化。

您只需要一种方法来隔离将被点击的li元素,这可能是一个分层选择器,或者将一个类添加到父ul

另请注意,您的IFRAME字符串包含不合适的单引号。

&#13;
&#13;
var src = ["","","","","",""];

var $list = $(".toggle > li");  // Get a wrapped set of the <li> elements in the target list

// Loop over the li elements
$list.each(function(index, element){

  // Assign a click event handler to each li
  $(element).on("click", function(){
  
     // Get reference to the first div within the li that was clicked
     var $div = $(this).find("div:first-child");
  
     // Toggle the use of the hidden class on the div
     $div.toggleClass("hidden");
     
     // If the div is hidden...
     if($div.hasClass("hidden")){
       $div.html("");  // Clear the contents
     } else {
       // Populate with an iframe that relies on the index of the parent li
       $div.html("<IFRAME SRC='" + src[index] + "' FRAMEBORDER='0' SCROLLING='NO' WIDTH='888' HEIGHT='500' allowfullscreen></IFRAME>)");
     }
  });
});
&#13;
.hidden { display:none; }

iframe { background-color:yellow; }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Giving the parent of the li's that will be clicked a class will allow you
     to gather them up into a collection easily. -->
<ul class="toggle">
 <li>item
   <div class="hidden">surprise!</div>
 </li>
 <li>item
   <div class="hidden">surprise!</div>
 </li>
 <li>item
   <div class="hidden">surprise!</div>
 </li>
 <li>item
   <div class="hidden">surprise!</div>
 </li>
 <li>item
   <div class="hidden">surprise!</div>
 </li>
 <li>item
   <div class="hidden">surprise!</div>
 </li> 
</ul>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

在onclick =&#34; function(id)&#34;中使用你的li id并在您的javascript函数中定义一个变量以捕获此ID。 然后在该函数中的任何地方使用该变量,它只会改变该id的属性。