Javascript 如何更改DIV中循环中的文本

Javascript 如何更改DIV中循环中的文本,javascript,jquery,Javascript,Jquery,我在DIV标记中有文本。是否有可能在一个永不结束的循环中使用五种不同的文本内容来更改文本内容?听起来很简单,但我正试图找到使用jquery或相关查询的最简单方法 非常感谢,, 埃里克这里有一个例子:。它比这个大一点,因为我添加了一些元素来显示正在发生的时钟 代码如下: var strings = ['Foo', 'Bar', 'FooBar', 'BarFoo', 'FooBarFoo']; var index = 0; function cycle() { $('#cycle').t

我在DIV标记中有文本。是否有可能在一个永不结束的循环中使用五种不同的文本内容来更改文本内容?听起来很简单,但我正试图找到使用jquery或相关查询的最简单方法

非常感谢,, 埃里克这里有一个例子:。它比这个大一点,因为我添加了一些元素来显示正在发生的时钟

代码如下:

var strings = ['Foo', 'Bar', 'FooBar', 'BarFoo', 'FooBarFoo'];
var index = 0;

function cycle()
{
    $('#cycle').text(strings[index % strings.length]);
    index++;

    setTimeout(cycle, 500);
}

cycle();
您只需循环遍历数组的值,要做到这一点,您需要对数组的长度进行模化(Google的“模化运算符”)

还有一个(有点)一行:

var index = 0;
var strings = ['Foo', 'Bar', 'FooBar', 'BarFoo', 'FooBarFoo'];

$(function() { setInterval(function() {$('#cycle').text(strings[index++ % strings.length]);}, 1000); });
下面是一个例子:。它比这个大一点,因为我添加了一些元素来显示正在发生的时钟

代码如下:

var strings = ['Foo', 'Bar', 'FooBar', 'BarFoo', 'FooBarFoo'];
var index = 0;

function cycle()
{
    $('#cycle').text(strings[index % strings.length]);
    index++;

    setTimeout(cycle, 500);
}

cycle();
您只需循环遍历数组的值,要做到这一点,您需要对数组的长度进行模化(Google的“模化运算符”)

还有一个(有点)一行:

var index = 0;
var strings = ['Foo', 'Bar', 'FooBar', 'BarFoo', 'FooBarFoo'];

$(function() { setInterval(function() {$('#cycle').text(strings[index++ % strings.length]);}, 1000); });

非常简单的方法:使用
setInterval()


编辑如果您想让效果更出色:


编辑2重新评论(如下)

  • :为每个旋转器使用不同的变量名称,因为变量范围不受
    标记的影响
  • :不要更改变量名,但要使用闭包,这样全局范围就不会受到污染
需要的其他修复(显示在两个小提琴中):

  • 实际上,从某个地方加载jQuery,否则这些代码都无法工作

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
    
    
    
  • 删除第一个
    文本
    数组文本末尾的尾随逗号

  • 将两个
    text
    数组声明后的分号改为逗号,否则以下变量(
    i
    $div
    )将被声明为全局变量,这是一件坏事。

非常简单的方法:使用
setInterval()


编辑如果您想让效果更出色:


编辑2重新评论(如下)

  • :为每个旋转器使用不同的变量名称,因为变量范围不受
    标记的影响
  • :不要更改变量名,但要使用闭包,这样全局范围就不会受到污染
需要的其他修复(显示在两个小提琴中):

  • 实际上,从某个地方加载jQuery,否则这些代码都无法工作

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
    
    
    
  • 删除第一个
    文本
    数组文本末尾的尾随逗号

  • 将两个
    text
    数组声明后的分号改为逗号,否则以下变量(
    i
    $div
    )将被声明为全局变量,这是一件坏事。

很难说您的意图,但您可以使用
setInterval
触发计时器在
div
中追加/更改信息

<div id="change">initial content</div>
<script>
    $(function() {
      setInterval(update, 1000);
    });

    function update() {
      $("#change").append(".");
    }
</script>
初始内容
$(函数(){
设置间隔(更新,1000);
});
函数更新(){
$(“#变更”)。追加(“.”);
}

很难说您的意图,但您可以使用
setInterval
触发计时器在
div
中追加/更改信息

<div id="change">initial content</div>
<script>
    $(function() {
      setInterval(update, 1000);
    });

    function update() {
      $("#change").append(".");
    }
</script>
初始内容
$(函数(){
设置间隔(更新,1000);
});
函数更新(){
$(“#变更”)。追加(“.”);
}

能否提供一些输入/输出数据样本?能否提供一些输入/输出数据样本?谢谢。它可以工作,但只有当我有两个以上的标签,我想改变文本时,它才能工作。是否有一种方法可以更改多个标记?当然,问题是代码的范围不限于
标记-
文本
i
$div
都是全局的。您需要(1)为每个旋转器的变量使用不同的变量名,或者(2)将您现在在单独的脚本标记中拥有的内容封装在单独的闭包中。我将拼凑jsfiddles来展示每一个。哦,另外,在第一个
文本
数组中有一个尾随逗号,这将导致一些浏览器阻塞…还有一个大问题,页面从未加载jQuery。谢谢。它可以工作,但只有当我有两个以上的标签,我想改变文本时,它才能工作。是否有一种方法可以更改多个标记?当然,问题是代码的范围不限于
标记-
文本
i
$div
都是全局的。您需要(1)为每个旋转器的变量使用不同的变量名,或者(2)将您现在在单独的脚本标记中拥有的内容封装在单独的闭包中。我将拼凑jsfiddles来展示每一个。哦,另外,在第一个
文本
数组中有一个尾随逗号,这将导致一些浏览器阻塞……还有一个大问题,页面从未加载jQuery。