как удалить элемент из 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, время: 08:42. |