如何在javascript中循环遍历变量声明
How can you loop through a variable declaration in javascript
因此,我发现自己重复了一些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");
正如您所看到的,它是一样的,但在变量名和类选择器中有一个递增的数字。有没有办法绕过这个?
我还发现自己也被困在了这个循环中:
$(".stop").click(function() {
player1.pauseVideo();
player2.pauseVideo();
player3.pauseVideo();
player4.pauseVideo();
});
我再次看到一个重复的过程,相同的代码只是在末尾增加数字。所以我在这种情况下也看到了一个潜在的循环。
更新
对于那些好奇这些点是用来做什么的人来说,它应该是这样的。
$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');
});
使用语法[]
定义某个对象的动态属性:
var myVariables = {};
for (var i = 0; i < 99; i++) {
myVariables['$d' + i] = $(".dot-" + i);
}
如果您可以将变量放在数组中(这可能会更有用(,您可以这样做:
var $d = [];
for (var i = 1; i <= 30; i++) {
$d.push($(".dot-"+i));
}
然后,您可以使用$d[index]
访问元素,其中index是一个数字0-29(对应于".dot-1"到".dot-30"(。
您最好从一个不同的、更好的逻辑开始。
给所有元素指定相同的类dot
,然后访问特定元素,使用.eq()
方法:
$(".dot").eq(11)
例如,将返回第12个元素。我真的看不出有任何理由给每个元素单独的类。
根据评论,看起来你的目标是确定哪个元素被点击了,要做到这一点,你可以使用.index()
方法,如下所示:
$(document).ready(function() {
$(".dot").click(function() {
alert("my index is: " + $(this).index() + ", hooray!");
});
});
<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>
for(var i=1; i<31; i++){
window['$d' + i] = $(".dot-" + i);
}
和
$(".stop").click(function() {
for(var i=1; i<5; i++){
window['player' + i].pauseVideo();
}
});
不确定循环的意图是什么,但这样的东西可能会起作用?
$(function(){
var x = $("*[class^='$d']").size();
var z =null;
while (i < x) {
doSomthing();
}
});
您可以使用eval();
$(".stop").click(function()
{
for (var i = 1; i < 31; i++)
{
eval('player'+ i +'.pauseVideo();');
}
});
相关文章:
- 循环遍历以数组为值的Javascript对象
- 遍历类元素数组,并在jquery中选择同级元素
- Jquery遍历表元素
- Chrome扩展:遍历不同的页面并收集数据
- 如何遍历包含对象的数组-javascript
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 遍历AngularJs中的对象
- 循环遍历 HTML 内容并将值作为全局变量返回
- 遍历包含正则表达式的 JavaScript 对象变量
- 使用解释的变量名称循环遍历窗体上的单选按钮
- 使用闭包遍历带有变量的 jQuery 选择器
- 遍历循环,在一个范围内随机更改变量的值,但满足所有变量
- 循环遍历函数中的多个变量
- jQuery在一个变量中遍历HTML并删除第一个单选按钮
- 循环遍历li项,并在每个li项中设置变量以执行不同的操作
- 如何在javascript中循环遍历变量声明
- 遍历对象以查找两个ID变量的匹配项
- 遍历js数组和变量赋值不起作用
- 循环遍历文本框,使用id作为变量
- 遍历堆栈时 JavaScript 中的变量范围