0

私の ajax 応答が成功すると、次のコードが表示されます。

success : function(response) {
               $('#texto').append(response);
          }

これは私が追加する応答htmlです:

<body>
{% load custom_filters %}
{% for modulo in modulos %}
<div align="left" class="result" value="{{ modulo.nome }}">
    {{ modulo.nome }} {{ modulo.versao }}.{{ modulo.chave_revisao|soma_um|mascara_versao }}
</div>
{% endfor %}

div が表示されますが、それらの値を使用しようとすると、空の文字列が得られます。そして、比較は偽になります。

$('.result').each(function(){
                    for (i=0; i<=vetBuscar.length;i++){
                        if($(this).val() == vetBuscar[i]){
                            return true;
                        } else {
                            vetBuscar.pop(i)
                        }
                    }

この値を取得する方法を知っている人はいますか?

4

2 に答える 2

0

問題は、ページが読み込まれるときに、探している要素がまだ読み込まれていないため、セレクターがまだ何にもバインドされていないことだと思います。これは実際には、javascript を使用して html をロードする際によくある問題です。

jQuery .on() イベント ハンドラーを確認してください。まさにあなたが探しているものであると思います。

http://api.jquery.com/on/

于 2012-08-22T07:43:32.237 に答える
0

試す:

$(this).attr("value")

それ以外の:

$(this).val()

通常、div には属性がなくvalue、このメソッドは属性を持つ.val()(フォーム) 要素を対象としています。

または、html5data-属性を使用して次のように使用することもできます。

<div align="left" class="result" data-value="{{ modulo.nome }}">

その後:

$(this).attr("data-value")
于 2012-08-22T03:27:13.280 に答える