我的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
我希望你能帮助我
答案 0 :(得分:2)
问题在于这一行
document.getElementsByClassName('show-button')[0].style.display = 'block';
这将找到第一个.show-button
并显示它。要定位包含图片的.show-button
中的每个.img-container
,请将该行更改为$(this).find('.show-button').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; }