选择一个以输入开头的div

时间:2012-05-04 15:53:18

标签: javascript jquery html

嗨我有两个标签

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

我没有回复

请使用

选择div
this

而不是

.aav

这里

$(".aav~.aridc")

由于

3 个答案:

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