Javascript 选择前面有输入的div
嗨,这是两个标签Javascript 选择前面有输入的div,javascript,jquery,html,Javascript,Jquery,Html,嗨,这是两个标签 <input type="text" name="aav" class="aav"/> <div id="aridc" class="aridc"></div> 要选择div并确保它是输入后面的div,我执行以下操作 $(".aav~.aridc") $(this+"~.aridc") 但当我这么做的时候 $(this+"~.aridc") 我没有回应 请说明如何使用 this 而不是 .aav 这里 谢谢这是因为来自ajax方法
<input type="text" name="aav" class="aav"/>
<div id="aridc" class="aridc"></div>
要选择div并确保它是输入后面的div,我执行以下操作
$(".aav~.aridc")
$(this+"~.aridc")
但当我这么做的时候
$(this+"~.aridc")
我没有回应
请说明如何使用
this
而不是
.aav
这里
谢谢这是因为来自ajax方法的回调中的
这个
没有引用相同的对象;环境发生了变化。通过保留对调用方的引用,可以轻松解决此问题:
$(".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");
}
});
})) 将此引用存储到变量,然后使用
.next()
获取同级变量:
var thediv = this;
...
$(thediv).next(".aridc")
此
是一个DOM元素,而不是字符串,并且不能将其强制到字符串的选择器中。您只需再次键入字符串(或us.attr
,以获取类的某些特定属性选择器,如其ID)。不仅如此,不管怎样,您使用的这个都是错误的。。有了.ajax
,我相信将是jqXHR
。您可以使用上下文:
或将此存储到另一个变量
我发现有趣的是,~
与选择器上下文一起工作。您可以使用:
$input = $(".aac");
$("~ .aridc", $input)
它的工作原理与
$(".aac ~ .aridc");
您可以在这里显示html和jquery代码?也许可以尝试jquery prev:您的原始功能范围之外的代码!我认为这行不通<代码>该+“”
导致jQuery内部出现语法错误。@tandu您是对的,我有一个错误未捕获错误:语法错误,无法识别的表达式:[object HTMLInputElement]
$(".aac ~ .aridc");