2011-06-16 5 views
0

après un certain temps j'ai encore besoin de votre aide ;-). J'ai trouvé suivant javascript Accéder à un tableau

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> 

Je ne comprends pas la ligne suivante:

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

Quelqu'un peut-il fournir une explication simple ou une comparaison à l'écriture commune?

Merci.

Répondre

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

document.getElementById ("id_" + x)

sélectionne l'élément HTML nommé id_x (où x est la variable dans votre code)

.src

spécifie que vous voulez changer la source de l'élément HTML sélectionné ci-dessus

[ "led_off.gif", "led_on.gif"] [ parseInt (octet [x], 10)];

qui sera rendu à "led_off.gif" ou "led_on.gif" en fonction de la valeur de x.

parseInt(byte[x],10) tente de convertir une chaîne au format numérique (et dans ce cas le format numérique basé sur 10), et seront soit 0 ou 1.

Ainsi, la ligne deviendra:

document.getElementById ("id_ [x]"). src = "led_off.gif"

ou

document.getElementById ("id_ [x]"). Src = "led_on.gif"

en fonction de la valeur de x. Ce qui signifie que la source de l'image avec id = id_x changera de source pour l'autre gif.

+0

L'élément avec l'id 'id_' + x a été coupé, parce que je voulais réduire le code source au minimum. Ant merci pour votre explication simple. – reporter

3

Je belive que le code suivant: parseInt(byte[ x ], 10) retourne toujours 0 ou 1 sélectionnant ainsi eiter "led_off.gif" ou "led_on.gif" comme src de l'élément x :)

HTH :)

+0

Je pensais que 'parseInt (octet [x], 10)' renvoie un nombre décimal, analysé à partir d'un binaire. Et même si oui, que signifie "[" led_off.gif "," led_on.gif "] [0] '? Est-ce que le deuxième argument specife quel élément le navigateur devrait prendre? – reporter

+1

parseInt ne peut jamais renvoyer un nombre décimal ... le type de données entier n'a pas de chiffres flottants! ... oui ["led_off.gif", "led_on.gif"] est une façon abrégée de déclarer un tableau à la volée. L'ajout de [0] après indique la sélection du premier élément dans ce tableau. –

+0

Merci pour votre dernier commentaire.Cela a amélioré ma compréhension dans les tableaux, alors vous l'avez marqué comme un excellent commentaire. – reporter

Questions connexes