javascript
  • html
  • 2013-02-09 79 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节点。

    相关问题