2012-08-22 71 views
0

當我的Ajax響應是成功的,我有以下代碼:無法從Ajax響應DIV值

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 %} 

divs出現,但是當我要使用它們的值時,我得到一個空字符串。比較失敗。

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

任何人都知道我怎樣才能得到這個值?

+0

爲什麼你的響應包含''標籤? –

+0

AJAX調用完成後,您是否將Django模板標籤/ for循環添加到div?在將模板發送給客戶端之前對其進行評估。如果你成功的AJAX調用他們不會進行評估之後添加它們,這意味着將只有一個DIV與類=「結果」,它會具有值=「{{modulo.name}}」沒有任何變量將舉行。 – Mikael

+0

@goliney它只是一個錯字,感謝 –

回答

0

嘗試:

$(this).attr("value") 

代替:

$(this).val() 

通常的div沒有value屬性,且.val()方法用於那些(形式)的元素。

或者你可以像使用HTML5 data-屬性和使用:

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

然後:

$(this).attr("data-value") 
0

我認爲這個問題可能是,當你的頁面加載,這些元素你」重新尋找還沒有被加載,所以你的選擇器還沒有被綁定到任何東西。這實際上是使用JavaScript加載html時的常見問題。

退房jQuery的。對()事件處理程序,我認爲這可能正是你要尋找的:

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