如何每x秒更改一次文本值?

时间:2014-03-28 13:35:55

标签: javascript jquery html

我有一个没有任何内容的跨度,我想每隔x秒改变它的值。我已尝试过此操作,但代码只执行if,并且它不会执行else ifelse语句。 HTML:

<span id="text"></span>

jquery的:

var text = null;
var step1 = "Step1";
var step2 = "Step2";
var step3 = "Step3";

$(document).ready(function(){
    text = $("#text").append(step1);
    setInterval(change, 2000);

});

function change(){

    if(text.val = step1){
        text.empty().append(step2);
    }else if(text.val = step2){
        text.empty().append(step3);
    }else if(text.val = step3){
        text.empty().append(step1);
    }
}

2 个答案:

答案 0 :(得分:6)

我不会将自己局限于一个明确检查固定数量项之间的值的实现。如果您使用%运算符,并在数组中查找初始文本索引,则可以轻松将其缩小为 n 项:

(function(){

    var element = $("#text");
    var strings = ["Step 1", "Step 2", "Step 3"];
    var present = $.inArray(element.text(), strings);

    setInterval(function advance () {
        element.text(strings[++present % strings.length]);
    }, 1000);

}());

小提琴:http://jsfiddle.net/AZLJN/3/

并且,对于踢,通过上述解决方案的动画之旅:

enter image description here

答案 1 :(得分:5)

您正在设置变量而不是比较:

if(text.text() == step1){
    text.empty().append(step2);
}else if(text.text() == step2){
    text.empty().append(step3);
}else if(text.text() == step3){
    text.empty().append(step1);
}

=是变量分配运算符
==是比较运算符

注意:当您必须获得输入值时,请使用.val()。使用.text()获取元素的内容。