javascript - 上传图片后如何在图片框中添加图标删除?

标签 javascript php jquery html css

我的 html 代码是这样的:

<input type='file' multiple/>
<?php
    for($i=0;$i<5; $i++) {

?>
    <div class="img-container" id="box<?php echo $i ?>">
        <button  style="display: none;" type="submit" class="btn btn-danger show-button">
            <i class="glyphicon glyphicon-trash"></i>
        </button>
    </div>
<?php
    }
?>

我的 javascript 代码是这样的:

$(function () {
    $(":file").change(function () {
        var noOfFiles = this.files.length;
        for(var i=0; i < noOfFiles; i++) {        
            var reader = new FileReader();
            reader.onload = imageIsLoaded;
            reader.readAsDataURL(this.files[i]);
        }        
    });
});

function imageIsLoaded(e) {
    var imgTmpl = '<img height="142" width="162" src='+e.target.result+'>';
    var IsImgAdded=false;
    $('.img-container').each(function(){
        if($(this).find('img').length==0 && IsImgAdded==false){
            $(this).append(imgTmpl);
            IsImgAdded=true;
            document.getElementsByClassName('show-button')[0].style.display = 'block';
        }
    });     
};

演示和完整代码如下:http://phpfiddle.org/main/code/gnfa-gf8h

每次上传图片时,我都想在每张上传的图片中添加删除图标。例如我选择了2张图片,那么每2张图片都会有删除图标

我试过了。但它只适用于框 1。否则删除图标不会出现在图像中。这似乎需要更多关于 css 的专业知识。我不擅长CSS

希望你能帮帮我

最佳答案

问题出在这一行

document.getElementsByClassName('show-button')[0].style.display = 'block';

这将找到第一个 .show-button 并显示它。要定位具有图像的 .img-container 中的每个 .show-button,请将该行更改为 $(this).find('.show-按钮').show();

这是更新后的函数

function imageIsLoaded(e) {
        var imgTmpl = '<img height="142" width="162" src='+e.target.result+'>';
        var IsImgAdded=false;
        $('.img-container').each(function(){
            if($(this).find('img').length==0 && IsImgAdded==false){
                $(this).append(imgTmpl);
                IsImgAdded=true;
                $(this).find('.show-button').show();
            }
        });     
    };

要将删除图标定位在图像上,请使用绝对定位。

.img-container { position: relative; }
.img-container .show-button { position: absolute; top: 0; left: 0; }

关于javascript - 上传图片后如何在图片框中添加图标删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44088749/

相关文章:

php - Laravel 5.0 file_put_contents 错误

javascript - touchend 和 target _blank 不合作

javascript - 在 Google 折线图中设置 vAxis 格式

javascript - 仅当在同一表单的另一个字段中输入数据时才传递表单字段数据

javascript - 逆向工程下载 HTML 格式的个人资料页面

javascript - jQUery .slideToggle() 和 .text 替换

javascript - 流过当前页面的页面

javascript - 检查字符串是否包含特定子字符串

php - 如何使用 phpunit 和 Liip 传递不记名 token 以测试 API

php - mysql联合排列每个表的结果