javascript - How to select closet element in jQuery and fire change event to file input?
问题描述
I have a table with 2 TDs, its HTML
is something like below: Here I want to send ajax request when as soon as file input change.
File is changing when change-image
button click.
<tbody>
<tr>
<td class='center'>
<div class='p-img'>
<img class='img-thumbnail' src='269_thumb_1543210907.jpg' width='200' height='100'>
<div class='loader'></div>
</div>
</td>
<td class='center'>
<div class='upload-btn-wrapper'>
<button class='btn btn-minier btn-purple change-image ' data-image_id='1374'>Change Image</button>
<input type='file' name='myfile' />
</div>
</td>
</tr>
<tr>
<td class='center'>
<div class='p-img'>
<img class='img-thumbnail' src='269_thumb_1543211961.jpg' width='200' height='100'>
<div class='loader'></div>
</div>
</td>
<td class='center'>
<div class='upload-btn-wrapper'>
<button class='btn btn-minier btn-purple change-image' data-image_id='1380'>Change Image</button>
<input type='file' name='myfile' />
</div>
</td>
</tr>
</tbody>
Now I want select which button is clicked by user to send ajax request.
Can anybody tell me how detect which button is click and how fire change
event to its file input?
This is how I tried it, but not sure how to proceed. Sorry I am new to jquery.
$('#property_images').on('click', '.change-image', function(e){
e.preventDefault();
var changeImg = $(this).closest('tr').children('td').find('.change-image');
var image_id = $(this).data("image_id")
});
解决方案
由于某种原因,您引用了被单击的按钮,但您在表格行中搜索该按钮。
同一个TD里面的按钮的文件输入,所以你需要看TD,而不是TR
$(this).closest("td").find([type='file'])
或者只是使用next()
$(this).next([type='file'])
推荐阅读
- java - 避免在我的课堂上使用扩展和实现
- android - Imageview旋转动画不会在点击时重复
- java - 场景生成器上的雷达图
- php - 如果在 WooCommerce 中为空,则在订单编辑页面(后端)上隐藏自定义字段标签
- laravel - Laravel:如何在同一 div 中显示多个上传图像或视频,如 facebook
- javascript - React 中带有 jsx 扩展的 PascalCase 或没有它的 camelCase?
- math - 定义给定体积的多维对象
- javascript - SyntaxError: missing ) 在参数列表(第 28 行,文件“Code.gs”)之后
- c++ - 模板中的(*)是什么意思
使用 L = T(*)(T);? - html - 有没有办法对列表服务器端进行分页?