2015-04-22 26 views
5

我想使这个Javascript代码,当我点击“删除图像”链接,它会删除图像。请帮帮我。Javascript代码移除图像

<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

为什么不只需隐藏'img'元素? – Kane

+2

只需隐藏图像元素,或将其源代码更改为其他内容。或者什么也没有。 – piggy

+0

我想隐藏成像路径也 – user3732708

回答

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

它不会删除图像,它隐藏它。你应该使用jQuery的删除功能(甚至是JavaScript)。 $('#myImage')。remove(); 如果你想保留你的旧图像路径,我会建议使用创建一个名为“imageCache”的数组,并保持用户在那里看到的图像,这样你就可以轻松地在在div中的图像没有冒着“揭示”你的隐藏图像的风险。 –

+0

(S)他没有要求提供jQuery解决方案 – sroes

+0

我也想要删除隐藏的图像路径。 – user3732708

0

保持img元素的股利和分配ID既此元素

<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

如果不能id属性添加到img,您可以用原始的JavaScript这样的删除它 - 它假定图像被锚标记直接之前,允许它们之间只有一个文本节点:

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>