如何在输入后看到最近的<i>
元素。如何找到最近的元素
我的html代码:
<td data-sort-initial="true" data-value="azert" style="padding:7px;position:relative;">
<input class="form-control input-sm edit2" data-nom_champ="contact_label" data-id_ecole_contact="10" name="contact_label" type="text" value="azert">
<i class="fa fa-spinner fa-spin" id="waiting_label_10" style="display:none;position:absolute;right:10px;top:13px;"></i>
</td>
我的js代码:
$.ajax({
type : 'POST',
url : $('#url_for_ajax').val()+'/update_ecole_contact_ajax',
dataType : 'json',
data : {_token:$('meta[name="_token"]').attr('content'),id_ecole_contact:$(this).data('id_ecole_contact'),nom_champ:$(this).data('nom_champ'),new_value:$(this).val()},
beforeSend : function() {
$(this).closest('i').next().show();
// $('#waiting_valeur'+id_ecole_contact).show();
},
success : function(reponse) {
$('#waiting_'+id_ecole_contact).hide();
}
});
在这个例子中,<i>
元素仍然是不可见的。问题是这里:
$(this).closest('i').next().show();
但我不知道究竟是什么。
'this'是指AJAX的选择对象'$ .ajax'回调。现在你的问题还不清楚,因为我们不知道你称之为ajax请求的上下文。但是要在ajax回调中设置相关的上下文,请使用'context:this,'作为选项。如果'this'指的是父函数作用域中的'input'元素,那么它应该是:'$(this).next()。show();'。这就是说,因为一个id被设置并且id必须在文档上下文中是唯一的,所以你可以使用:'$('#waiting_label_10')。show();' –
我有一个输入,我发送一个ajax请求当这个输入的值改变时。这个ajax请求在数据库中做了一些更新。在这个过程中,我想在输入后显示一个微调。它更清楚吗?提前致谢。 – Dom
当我尝试$(this).next()。show():它工作在ajax请求之外。但它不起作用在ajax请求中,进入beforeSend部分 – Dom