首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在引用索引的循环中调用jQuery中的变量

是否可以在引用索引的循环中调用jQuery中的变量
EN

Stack Overflow用户
提问于 2016-01-30 01:19:02
回答 3查看 35关注 0票数 0

我真的不知道如何解释我的问题,所以我贴上了下面的代码。基本上,我有三个以数字结尾的变量,我想在一个循环中调用每个变量,它引用循环索引。

代码语言:javascript
复制
textLine1 = "This is line 1";
textLine2 = "This is line 2";
textLine3 = "This is line 3";

function text(i) {
  for (i = 1; i < 4; i++) {
    $('.line__' + i).html(textLine(i) would go here);
  }
}

text();
EN

回答 3

Stack Overflow用户

发布于 2016-01-30 01:22:22

将变量放入数组中,然后访问适当的数组元素:

代码语言:javascript
复制
var textLine = ["This is line 1", "This is line 2", "This is line 3"];

function text() {
  for (var i = 0; i < textLine.length; i++) {
    $('.line__' + (i+1)).html(textLine[i]);
  }
}

text();

备注:

  1. 数组是0索引的,所以第一个数组元素位于textLine[0],所以您需要更改for循环以从0开始。
  2. 您的局部变量i应该在var中声明为局部变量,因此它不是偶然的全局变量(我不知道为什么要将它声明为参数,因为它不是以这种方式使用的)。
  3. 为了便于维护,您的for循环应该与textLine.length相比,而不是硬编码常量。

一种更紧凑的编码方式是这样的:

代码语言:javascript
复制
var textLine = ["This is line 1", "This is line 2", "This is line 3"];

textLine.forEach(function(item, index) {
    $('.line__' + (index+1)).html(item);
});
票数 2
EN

Stack Overflow用户

发布于 2016-01-30 01:26:28

正如其他人所建议的那样,数组最适合用于此目的。

但是对于那些无法控制如何声明变量的人,您可以使用以下方法。

代码语言:javascript
复制
textLine1 = "This is line 1";
textLine2 = "This is line 2";
textLine3 = "This is line 3";

function text(i) {
  for (i = 1; i < 4; i++) {
    $('.line__' + i).html(window['textLine' + i]);
  }
}

text();
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="line__1"></div>
<div class="line__2"></div>
<div class="line__3"></div>

票数 0
EN

Stack Overflow用户

发布于 2016-01-30 01:58:39

代码语言:javascript
复制
var textLines = ["This is Line 1", "This is Line 2","This is Line 3"];

function text() {
  for (var i = 0; i < textLines.length; i++) {
    $('.line__' + (i + 1)).html(textLines[i]);
  }
}

text();
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="line__1"></div>
<div class="line__2"></div>
<div class="line__3"></div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35096883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档