Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] jak usunąć wszystkie obrazki ze strony
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
m.mix
Witam, mam taki problem - jest strona z tabelką, w tabelce różne treści, w tym i obrazki. Tabelka siedzi sobie w jakimś określonym div'ie. Chcę w jakiś prosty sposób wyeksportować tą tabelkę do zewnętrznego pliku, ale bez obrazków bo interesuje mnie treść a nie ozdobniki. Przyszło mi do głowy że javascript zajmie się przechwyceniem obiektu z tabelką, skopiuje go, prześle do skryptu php który zajmie się utworzeniem nowego pliku. I działa to fajnie, tylko zaskoczył mnie problem po stronie js - nie moge poradzić sobie z pozbyciem się tych obrazków.
CODE
function eksportuj() {
kopiadiva=document.getElementById("div_glowny").cloneNode(true); //kopiuje sobie element zeby nie popsuc efektu wyswietlanego
alert(kopiadiva.getElementsByTagName("img").length); // sprawdzam sobie ile naliczylo obrazkow - nawet sie zgadza smile.gif
for (i=0; i<kopiadiva.getElementsByTagName("img").length;i++) { //tu w petli chcialem usuwac wszystkie obrazki
kopiadiva.removeChild(kopiadiva.getElementsByTagName("img").item(i)); //ale juz na pierwszym krzyczy ze 'Node was not found' sad.gif
}
document.getElementById("doeksportowania").value=kopiadiva.innerHTML; //a tu chcialem eksportowac to co mi zstanie
}


Macie pomysł w jaki sposób pozbyć się tych obrazków? próbowałem juz róznych sposobów i nie umiem się pozbyć zawartości kopiadiva.getElementsByTagName("img") sad.gif
lord_t
Skorzystaj z jquery'owego remove()
m.mix
Dzięki wielkie, zadziałało w postaci:
CODE

function eksportuj() {
kopiadiva=document.getElementById("div_glowny").cloneNode(true);
$(kopiadiva.getElementsByTagName("img")).remove();
document.getElementById("doeksportowania").value=kopiadiva.innerHTML;
}


Nie mam jeszcze nawyku czerpania z dobrodziejstw jquery, ale chyba najwyższy czas zmienić przyzwyczajenia smile.gif

a może ma ktoś pomysł jak to napisać bez jquery?
lord_t
Nie wiem czy to działa we wszystkich przeglądarkach ale poszukaj: removeChilds() albo zobacz jak to zrobili w kodzie źródłowym jQuery.
kamil4u
Ach to jQuery.. do takich prostych skryptów IMO nie warto z niego i innych korzystać smile.gif

Kod
function eksportuj() {
var kopiadiva=document.getElementById("div_glowny").cloneNode(true);
var iloscElementow=(var elementy = kopiadiva.getElementsByTagName("img")).length;

for (var i=0; i<iloscElementow;++i)
kopiadiva.removeChild(elementy[i]);

document.getElementById("doeksportowania").value=kopiadiva.innerHTML;
}


Nie sprawdzałem - jak coś nie będzie działało pokaż trochę HTML smile.gif
Co do poprawności kodu pod IE obawiam się, że nie działa tam ten fragment: cloneNode(true);
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.