访问阵列

时间:2011-06-16 08:54:10

标签: javascript

过了一会儿我再次需要你的帮助;-)。我发现以下javascript          

var global_index = 0;
var db = [ "10000000", "01000000", "00100000", "00010000", "00001000", "00000100", "00000010", "00000001" ];

function loadled()
{
    var byte = db[ global_index ];
    if( global_index < 7 ) global_index++; else global_index = 0;
    for( var x = 0; x < byte.length; x++ )
    {
        document.getElementById("id_" + x ).src = [ "led_off.gif", "led_on.gif" ][ parseInt( byte[ x ], 10 ) ];
    }
    window.setTimeout( loadled, 100 );
}
window.onload = loadled;

</script></head>  
</html>

我不理解以下一行:

document.getElementById("id_" + x ).src = [ "led_off.gif", "led_on.gif" ][ parseInt( byte[ x ], 10 ) ];

任何人都可以为此提供简单的解释或与普通写作进行比较吗?

感谢。

2 个答案:

答案 0 :(得分:3)

我相信以下代码:parseInt( byte[ x ], 10 )将始终返回0或1,因此选择eiter“led_off.gif”或“led_on.gif”作为元素x的src:)

HTH:)

答案 1 :(得分:0)

document.getElementById("id_" + x ).src = [ "led_off.gif", "led_on.gif" ][ parseInt( byte[ x ], 10 ) ];
  

document.getElementById(“id_”+ x)

选择名为id_x的html元素(其中x是代码中的变量)

  

的.src

指定您要更改上面选择的html元素的来源

  

[“led_off.gif”,“led_on.gif”] [   parseInt(byte [x],10)];

将根据x的值呈现为“led_off.gif”或“led_on.gif”。

parseInt(byte[x],10)尝试将字符串转换为数字格式(在本例中为数字格式,基于10),并且将为0或1。

因此该行将成为:

  

的document.getElementById( “ID_ [X]”)。SRC   =“led_off.gif”

  

的document.getElementById( “ID_ [X]”)。SRC   =“led_on.gif”

取决于x的值。这意味着具有id = id_x的图像源将把源更改为另一个gif。