javascript
  • html
  • 2013-02-09 42 views -2 likes 
    -2

    我有這個腳本,我想創建第三個值(m3),但我不知道如何處理obj.nodeValue=(obj.nodeValue==m1)?m2:m1;行。 另外我怎麼會把HTML放在m1,m2和m3?特別是大膽的標籤。 感謝如何在這個JavaScript中添加另一個字段?

    <script type="text/javascript"> 
    function adMessage() { 
    
        delay=10000; 
    
        m1='Place your Thanksgiving orders today!'; 
        m2='All orders must be received by November 20th!'; 
        m3='testing'; 
        obj=document.getElementById('orders').firstChild; 
    
        obj.nodeValue=(obj.nodeValue==m1)?m2:m1; 
    
        setTimeout(function(){adMessage()},delay); 
    } 
    if(window.addEventListener){ 
        window.addEventListener('load',adMessage,false); 
    } 
    else { 
    if(window.attachEvent){ 
        window.attachEvent('onload',adMessage); 
        } 
    } 
    </script> 
    
    
    <p id="orders">Place your Thanksgiving orders today!</p> 
    
    +0

    什麼時候要添加3d字符串?你的問題是什麼? – bsiamionau 2013-02-09 14:16:25

    回答

    0

    obj.nodeValue=(obj.nodeValue==m1)?m2:m1; 
    

    是這個

    if (obj.nodeValue == m1) 
    { 
        obj.nodeValue = m2; 
    } 
    else 
    { 
        obj.nodeValue = m1; 
    } 
    

    短版根據您的邏輯,以顯示您需要擴展這一決定立方米值。

    如果你想在每個時間間隔切換到下一個消息,那麼也許這是你的解決方案:

    if (obj.nodeValue == m1) 
    { 
        obj.nodeValue = m2; 
    } 
    else if (obj.nodeValue == m2) 
    { 
        obj.nodeValue = m3; 
    } 
    else 
    { 
        obj.nodeValue = m1; 
    } 
    

    和Felix的想法當然是更好。如果將消息放入數組中,則可以輕鬆擴展它。

    對於嵌入HTML標記問題的一部分:您需要設置元素的innerHTML值而不是nodeValue。

    我提出了一個正在運行的jsfiddle你的問題的所有方面:http://jsfiddle.net/eNape/1/

    1

    既然你沒有一個二進制的情況了,你不能比較的電流值,並決定基於該顯示哪些消息(以及,好吧,你可以,但它變得醜陋)。

    一個乾淨的方法是創建一個消息列表,跟蹤當前消息的索引並推進索引(環繞)。

    例子:

    var index = 0; 
    var messages = [ 
        'Place your Thanksgiving orders today!', 
        'All orders must be received by November 20th!', 
        'testing' 
    ]; 
    var delay = 10000; 
    
    function adMessage() { 
        var node = document.getElementById('orders').firstChild; 
    
        node.nodeValue = messages[index]; 
        // advance index and wrap around if necessary 
        index = (index + 1) % messages.length; 
    
        setTimeout(adMessage, delay); 
    } 
    

    與您的代碼的正確位置,你不需要聽load事件,可避免一遍又一遍的搜索功能內的DOM節點。

    相關問題