как удалить элемент из DOM
На странице есть js скрипт. Как его удалить другим скриптом?
|
<script>var blah = "blah" ;</script>
<script>
var script = document.getElementsByTagName("script")[0] ;
script.parentNode.removeChild(script) ;
alert(document.querySelector("script").innerHTML) ;
</script>
|
А если скриптов на странице несколько и нужно удалить все?
Так неполучается:
var s = document.body.getElementsByTagName("script");
for(var i=0; i<s.length; i++)
{
var script = document.getElementsByTagName("script")[i];
script.parentNode.removeChild(script);
alert(s.length);
}
|
BorisBritva, найдите все скрипты и в цикле удалите каждый
var arr = document.getElementsByTagName("script") ;
for(var i=0, l=arr.length; i<l; i++)
arr[i].parentNode.removeChild(arr[i]) ;
|
Толку от удаления скрипта не будет. :blink:
|
Hekumok, не обманывай себя, называя переменную arr (ну типа array). NodeList ведет себя по-другому, словно "живой" массив. Удалишь нулевой элемент - все остальные индексы тут же сдвинутся. Так что удалять нужно с конца. Или array = Array.prototype.slice(nodes)
|
Ну не так уж обязательно с конца:
while(arr[0]) ...=) |
Вариант - превратить arr в настоящий массив:
var arr2 = Array.prototype.slice.call( arr, 0 ) for( var i = 0; i < arr2.length; ++i ) arr2[i].parentNode.removeChild( arr2[i] ); |
danik.js, упс, да, тупанул я) забыл, что NodeList - это "живой" массив
|
| Часовой пояс GMT +3, время: 07:08. |