2011-06-16 85 views
0

过了一段时间我需要你的帮助了;-)。我发现下面的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) ]; 

任何人都可以为此提供一个简单的解释或共同书写的比较?

谢谢。

回答

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

指定要更改上述

[ “led_off.gif”, “led_on.gif”] [ parseInt函数选择html元素的源(byte [x],10)];

根据x的值将渲染为“led_off.gif”或“led_on.gif”。

parseInt(byte[x],10)试图将字符串转换为数字格式(在这种情况下数字格式基于10),并且要么是0或1。

所以线将变为:

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

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

取决于x的值。这意味着id = id_x的图像源将会将源代码转换为另一个gif。

+0

ID为'id_'+ x的元素被切掉了,因为我想尽量减少源代码。蚂蚁感谢您的简单解释。 – reporter 2011-06-16 09:22:16

3

我相信的是,下面的代码:parseInt(byte[ x ], 10)将总是返回0或1从而选择eiter “led_off.gif” 或 “led_on.gif” 作为元素x :)

HTH :)

的src
+0

我想'parseInt(byte [x],10)'返回一个十进制数,从二进制文件中解析出来。即使如此,什么意思'[“led_off.gif”,“led_on.gif”] [0]'?浏览器的第二个参数specife是否应该采用? – reporter 2011-06-16 09:04:40

+1

parseInt永远不能返回小数......整数数据类型没有浮点数字! ...是[“led_off.gif”,“led_on.gif”]是动态声明数组的简短方式。在后面添加[0]表示选择该数组中的第一个元素。 – 2011-06-16 09:07:08

+0

感谢您的最新评论。这提高了我对数组的理解,所以我将它标记为很棒的评论。 – reporter 2011-06-16 09:24:53