2017-02-17 1 views
0

Salut à essayer de comprendre et corriger l'erreur de la console que je reçois lorsque vous exécutez le code suivant full code hereerreur de la console Javascript lors de l'ajout classList.add à un tableau

for(var i = 0 ; i <= paragraphs.length ; i++){ 
    if(i === 0){ 
    continue 
    } 
    paragraphs[i].classList.add('hide') 
} 

L'erreur lit

Cannot read property 'classList' of undefined 

I trouvé this explication sur reddit mais je ne savais pas comment il avait été corrigé?

Un grand merci à l'avance

+3

vous pourriez sauver la clause si en partant de 1'. –

+1

' tableaux _En JavaScript (et semblable à un tableau objets) sont indexés par zéro: le premier élément d'un tableau est à l'index 0, et le dernier élément est à l'index égal à la valeur de la propriété de longueur du tableau moins 1._ ([ref.] (https: // developer .mozilla.org/en-US/docs/Web/JavaScript/Référence/Global_Objects/Array # Accessing_array_elements)) – hindmost

Répondre

2

Vous êtes e hors de votre tableau sur votre boucle.

Pour ce faire:

for(var i = 0 ; i < paragraphs.length ; i++) 

Au lieu de

for(var i = 0 ; i <= paragraphs.length ; i++) 

Vous pouvez optimiser votre boucle pour commencer le deuxième élément directement ("i = 1 au lieu de" i = 0 «)

2

Votre boucle dépasse le nombre de vos paragraphes pour le résoudre, vous devez:

1 - paragraphs.length-1

ou

2 - i < paragraphs.length

var paragraphs = document.getElementsByTagName('p'), 
    firstParagraph = paragraphs[0], 
    link = document.createElement('a'); 
    link.innerHTML = 'Show more'; 
    link.setAttribute('class' , 'link'); 
    link.setAttribute('href' , '#'); 
    firstParagraph.appendChild(link); 
     for(var i = 0 ; i <= paragraphs.length-1 ; i++){ 
      if(i === 0){ 
      continue 
      } 
      console.log("hellp",paragraphs[i]); 
      paragraphs[i].classList.add('hide') 
     }