Видалити всі елементи скрипта за допомогою JS

Я намагаюся видалити всі елементи сценарію з HTML-сторінки. Але з якоїсь причини я можу видалити лише близько половини з них, використовуючи наведене нижче.

function t(){

   var r = document.getElementsByTagName('script');

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

        if(r[i].getAttribute('id') != 'a'){

            r[i].parentNode.removeChild(r[i]);

        }

    }

}

У мене є така умова, щоб я не видаляв виконавчий скрипт.

Я, по суті, намагаюся створити динамічний Javascript dis-abler для моїх селенових тестів.

3

1 Відповіді

Петля в зворотному напрямку, граф змінюється, коли ви починаєте видаляти вузли.

var r = document.getElementsByTagName('script');

for (var i = (r.length-1); i >= 0; i--) {

    if(r[i].getAttribute('id') != 'a'){
        r[i].parentNode.removeChild(r[i]);
    }

}
8
додано
Чорт, я цього не помітив. Дякую!
додано Автор Abs, джерело
Ви також можете використовувати для (var i = r.length; i--;) {
додано Автор Felix Kling, джерело
Спритний хлопець, добре думаючи Джейсона!
додано Автор JVillella, джерело
ІТ КПІ - JavaScript
ІТ КПІ - JavaScript
504 учасників

співтовариство javascript розробників в Telegram