0

こんにちは私はこれらの2つのタグです

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

ありがとう

4

3 に答える 3

0

thisは文字列ではなく DOM 要素であり、文字列のセレクターに強制することはできません。文字列をもう一度入力するだけです (または.attr、ID などのクラスの特定の属性セレクターを取得する必要があります)。それだけでなく、あなたはthisとにかく間違って働いています..それで私は信じています.ajax. 別の変数をjqXHR使用context:または格納できます。this

私が興味深いと思うのは、それ~がセレクターコンテキストで機能することです。あなたが使用することができます:

$input = $(".aac");
$("~ .aridc", $input)

そしてそれは同じように動作します

$(".aac ~ .aridc");
于 2012-05-04T16:00:48.270 に答える
0

この参照を変数に保存し.next()、兄弟を取得するために使用します。

var thediv = this;
...
$(thediv).next(".aridc")
于 2012-05-04T15:57:32.213 に答える
0

これはthis、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");
        }
    });

});

于 2012-05-04T15:56:28.750 に答える