2017-07-21 2 views
0

Il y a beaucoup de signets de niveau inférieur que je tente de supprimer. La boucle for renvoie uniquement le dernier signet de niveau inférieur et je n'ai aucune idée pourquoi. J'ai le code que j'utilisais ci-dessous:Créer une boucle pour supprimer des marque-pages en format pdf en utilisant javascript

// Calling the bookmarks 
 
var bm = this.bookmarkRoot; 
 

 
//getting the length of the lower level bookmarks 
 
var bmlength = bm.children[0].children[0].children.length; 
 

 
// attempting to gather all the bookmarks to delete 
 
for (var i=0; i < bmlength; i++){ 
 
var removeMe=bm.children[0].children[0].children[i]; 
 
} 
 
removeMe.remove()
<!-- Please replace me with example HTML -->

+0

Pourriez-vous s'il vous plaît ajouter le code HTML à votre code grâce –

Répondre

1

Pour chaque interation vous écrasez removeMe et est la raison pour laquelle vous supprimez seulement le dernier.

Appelez simplement supprimer à l'intérieur de la boucle sur chaque enfant.

for (var i = 0; i < bmlength; i++){ 
    bm.children[0].children[0].children[i].remove(); 
} 
1

Essayez cette

for (var i=0; i < bmlength; i++){ 
    var removeMe=bm.children[0].children[0].children[i]; 
    removeMe.remove() 
} 

ou cette

for (var i=0; i < bmlength; i++){ 
    bm.children[0].children[0].children[i].remove(); 
} 
+0

'removeMe' est visible à l'extérieur de la boucle car elle est déclarée avec' var' pas 'let'. Une déclaration 'var' est une fonction non bloquée – Roman

+0

ooop, vous avez raison, mon erreur –