2015-04-22 11 views
5

Chcę, aby ten kod Javascript był wyświetlany po kliknięciu linku "usuń obraz", to zdjęcie zostanie usunięte. Proszę pomóż mi.Kod JavaScript do usunięcia obrazu

<script> 
function previewFile(){ 

    var preview = document.querySelector('img'); 
    var file = document.querySelector('input[type=file]').files[0]; 
    var reader = new FileReader(); 

    reader.onloadend = function() { 
     preview.src = reader.result; 
    } 
    if (file) { 
     reader.readAsDataURL(file); 
    } else { 
     preview.src = ""; 
    } 
} 

    previewFile(); 

</script> 

<input type="file" onchange="previewFile()"><br> 
<img src="" height="200" alt="Image preview..."> 
<a href="#">remove image </a> 

    </body> 
</html> 
+1

dlaczego nie po prostu ukryj element 'img'? – Kane

+2

Po prostu ukryj element obrazu lub zmień jego źródło na coś innego. Ani w ogóle nic. – piggy

+0

Mogę ukryć ścieżkę obrazu również – user3732708

Odpowiedz

1
<img id='image' src="" height="200" alt="Image preview..."> 
<a id='remove' href="#">remove image </a> 

<script> 
$(function rmv() { 
    $('#remove').click(function() { 
      $('#image').remove(); 
     } 

}); 
</script> 
+0

Nie usuwa obrazu, lecz go ukrywa. Powinieneś użyć funkcji usuwania jQuery (lub nawet javascript ma to). $ ('# myImage'). Remove(); Jeśli chcesz zachować starą ścieżkę do obrazu w przypadku, proponuję użyć tworzenia tablicy o nazwie "imageCache" i zachować obraz, który widział użytkownik tam, więc będziesz mógł łatwo zrobić animację na obraz w dziale bez ryzyka "ujawnienia" ukrytego obrazu. –

+0

(S) on nie pytał prosić o rozwiązanie jQuery – sroes

+0

Chcę również usunąć ukrytą ścieżkę obrazu. – user3732708

0

Przechowywać img element div id i przypisać zarówno tego elementu

<input type="file" onchange="previewFile()"><br> 
<div id="imgDiv"> <img id="image1" src="" height="200" alt="Image preview..."></div> 
    <a href="#">remove image </a> 

     </body> 
    </html> 

<script> 
function previewFile() { 

    var d = document.getElementById('imgDiv'); 

    var olddiv = document.getElementById("image1"); 

    d.removeChild(olddiv); 

} 

</script> 
0
<img src="" id="image" height="200" alt="Image preview..."> 
<a href="#" onclick="foo()">remove image </a> 

JS:

function foo(){ 
    var image = document.getElementById("image"); 
    if (image != null) 
    { 
      image.parentNode.removeChild(image); 
    } 
} 
1

Jeśli nie można dodać atrybut id tej img, można go usunąć tak z surowego javascript - to zakłada, że ​​obraz jest poprzedzających znacznik zakotwiczenia bezpośrednio, co pozwala na tylko jeden węzeł tekstu między nimi:

function removeImage(el){ 
    if(!el.previousSibling.tagName){//if it is textnode like newline etc. we go one back 
     var el = el.previousSibling; 
    } 
    if(el.previousSibling.tagName && el.previousSibling.tagName=='IMG'){ 
     el.previousSibling.remove(); 
    } 
} 

<img src="" height="200" alt="Image preview..."> 
<a href="#" onclick="removeImage(this);">remove image</a>