嗨我有两个标签
<input type="text" name="aav" class="aav"/>
<div id="aridc" class="aridc"></div>
在此背景下
$(".aav").live("keyup",function(){
$.ajax({
type: "POST",
url: "recapVente.html",
cache: false,
data: "exp="+$(this).val()+" article",
success: function(reponse){
$(this+"~.aridc").empty();
$(this+"~.aridc").html(reponse);
},
error: function(e){
$(this+"~.aridc").empty();
$(this+"~.aridc").html("Votre recherche contien des erreurs");
}
});
});
选择div并确保它是输入之后的那个
$(".aav~.aridc")
但是当我这样做时
$(this+"~.aridc")
我没有回复
请使用
选择divthis
而不是
.aav
这里
$(".aav~.aridc")
由于
答案 0 :(得分:0)
这是因为来自ajax方法的回调中的this
不引用同一个对象;背景已发生变化。您可以通过保持对调用者的引用来轻松解决此问题:
$(".aav").live("keyup",function(){
var that = this;
$.ajax({
type: "POST",
url: "recapVente.html",
cache: false,
data: "exp="+$(this).val()+" article",
success: function(reponse){
$(that.class+"~.aridc").empty();
$(that.class+"~.aridc").html(reponse);
},
error: function(e){
$(that.class+"~.aridc").empty();
$(that.class+"~.aridc").html("Votre recherche contien des erreurs");
}
});
});
答案 1 :(得分:0)
将此引用存储到变量中,并使用.next()
来获取兄弟:
var thediv = this;
...
$(thediv).next(".aridc")
答案 2 :(得分:0)
this
是一个DOM元素,而不是一个字符串,它不能被强制转换为字符串的选择器。您只需再次键入字符串(或我们.attr
以获取该类的某些特定属性选择器,例如其ID)。不仅如此,但无论如何你正在使用错误的this
.. .ajax
它将是我相信的jqXHR
。您可以使用context:
或将this
存储到另一个变量。
我觉得有趣的是~
适用于选择器上下文。你可以使用:
$input = $(".aac");
$("~ .aridc", $input)
它将与
一样$(".aac ~ .aridc");