我有一个没有任何内容的跨度,我想每隔x秒改变它的值。我已尝试过此操作,但代码只执行if
,并且它不会执行else if
或else
语句。
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);
}
}
答案 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/
并且,对于踢,通过上述解决方案的动画之旅:
答案 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()
获取元素的内容。