I am trying to remove all script elements from a HTML page. But for some reason, I can only remove about half of them using the below:
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]);
}
}
}
I have that if condition so that I don't remove the executing script.
I am essentially trying to create a dynamic Javascript dis-abler for my selenium tests.
I am trying to remove all script elements from a HTML page. But for some reason, I can only remove about half of them using the below:
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]);
}
}
}
I have that if condition so that I don't remove the executing script.
I am essentially trying to create a dynamic Javascript dis-abler for my selenium tests.
Share Improve this question asked Oct 28, 2011 at 18:18 AbsAbs 57.9k103 gold badges281 silver badges416 bronze badges1 Answer
Reset to default 15Loop in reverse, the count is changing when you start removing nodes.
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]);
}
}