Luc*_*tos -1 javascript jquery loops
所以我发现自己重复了一些我的javascript,并想知道是否有一种方法可以在循环中分配变量,但最后会增加数字.
所以这是我想要循环的重复代码:
var $d1 = $(".dot-1");
var $d2 = $(".dot-2");
var $d3 = $(".dot-3");
var $d4 = $(".dot-4");
var $d5 = $(".dot-5");
var $d6 = $(".dot-6");
var $d7 = $(".dot-7");
var $d8 = $(".dot-8");
var $d9 = $(".dot-9");
var $d10 = $(".dot-10");
var $d11 = $(".dot-11");
var $d12 = $(".dot-12");
var $d13 = $(".dot-13");
var $d14 = $(".dot-14");
var $d15 = $(".dot-15");
var $d16 = $(".dot-16");
var $d17 = $(".dot-17");
var $d18 = $(".dot-18");
var $d19 = $(".dot-19");
var $d20 = $(".dot-20");
var $d21 = $(".dot-21");
var $d22 = $(".dot-22");
var $d23 = $(".dot-23");
var $d24 = $(".dot-24");
var $d25 = $(".dot-25");
var $d26 = $(".dot-26");
var $d27 = $(".dot-27");
var $d28 = $(".dot-28");
var $d29 = $(".dot-29");
var $d30 = $(".dot-30");
Run Code Online (Sandbox Code Playgroud)
你可以看到它的相同之处,但在变量名和类选择器中有一个递增的数字.有没有办法循环这个?
我也发现自己也试图绕过这个:
$(".stop").click(function() {
player1.pauseVideo();
player2.pauseVideo();
player3.pauseVideo();
player4.pauseVideo();
});
Run Code Online (Sandbox Code Playgroud)
我再次看到一个重复的过程,使用相同的代码,最后只增加数字.所以我在这种情况下也看到了潜在的循环.
UPDATE
对于那些对这些.dots的用途感到好奇的人来说,就是这样的.
$d1.click(function(){
$(".content-1").removeClass("zoomOut").addClass('zoomIn');
});
$d2.click(function(){
$(".content-2").removeClass("zoomOut").addClass('zoomIn');
});
$d3.click(function(){
$(".content-3").removeClass("zoomOut").addClass('zoomIn');
});
Run Code Online (Sandbox Code Playgroud)
使用语法[]在某个对象上定义动态属性:
var myVariables = {};
for (var i = 0; i < 99; i++) {
myVariables['$d' + i] = $(".dot-" + i);
}
Run Code Online (Sandbox Code Playgroud)
如果您同意将变量放在数组中(这可能会更有用),您可以这样做:
var $d = [];
for (var i = 1; i <= 30; i++) {
$d.push($(".dot-"+i));
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用 访问元素$d[index],其中索引是 0-29 之间的数字(对应于“.dot-1”到“.dot-30”)。
你最好有一个不同的,更好的逻辑开始.
给所有元素提供相同的类dot然后访问特定元素,使用.eq()方法:
$(".dot").eq(11)
Run Code Online (Sandbox Code Playgroud)
例如,会让你回到第12 个元素.我真的看不出任何理由给每个元素单独的类.
根据评论,看起来您的目标是确定单击了哪个元素,为此您可以使用如下.index()方法:
$(document).ready(function() {
$(".dot").click(function() {
alert("my index is: " + $(this).index() + ", hooray!");
});
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="dot">1</div>
<div class="dot">2</div>
<div class="dot">3</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
932 次 |
| 最近记录: |