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");