2014-03-28 79 views
0

我有一個沒有任何內容的跨度,我想每隔x秒改變它的值。我試過這個,但代碼只執行if,它不執行else ifelse語句。 HTML:如何每x秒更改一次文字的值?

<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); 
    } 
} 

回答

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); 
} 

=是可變的分配新建分配FY運營商
==是比較運營商

注意:您必須獲得輸入值時才使用.val()。使用.text()來獲取元素的內容。

+2

廣告應該是'.VAL()''不.val' – Jamiec

+0

噢,謝謝。 – aksu

+0

感謝球員們,我以前嘗試過.val(),但它不起作用。似乎我需要把.text()而不是.value()。再次感謝。 – lorenzo456

6

我不會將自己侷限於一個明確檢查固定數量項目之間的值的實現。如果使用%運營商,並查找的初始文本索引的一個數組,你可以很容易地擴展了這一點,以ñ項目:

(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

+0

感謝這是有幫助的,但我現在需要的僅僅是那三個,但是我要感謝我將來使用它。 – lorenzo456