2017-04-21 80 views
1

我有什么股利通过我AJAX请求填充的divAJAX请求后获得的div数

$(document).ready(function() { 
    question_block(); 
    count_blocks();   
}); 

function question_block() { 
    $.ajax({ 
     url: '@Url.Action("QuestionBlocks", "Interwier")', 
     contentType: 'application/json; charset=utf-8', 
     type: 'GET', 
     dataType: 'json', 
     processData: false, 
     success: function(result) { 
      var email = result; 
      for (var i = 0; i <= email.length - 1; i++) { 
       var question = 
        '<div class="activeQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question1 + 
         '</div>' + 
         '<div class="hiddenQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question2 + 
         '</div>' + 
         '<div class="hiddenQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question3 + 
         '</div>' + 
         '<div class="hiddenQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question4 + 
         '</div>' + 
         '<div class="hiddenQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question5 + 
         '</div>' + 
         '<div class="hiddenQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question6 + 
         '</div>' + 
         '<div class="hiddenQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question7 + 
         '</div>' + 
         '<div class="hiddenQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question8 + 
         '</div>' + 
         '<div class="hiddenQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question9 + 
         '</div>' + 
         '<div class="hiddenQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question10 + 
         '</div>'; 
       $("#questions").append(question); 
      } 
     }, 
     error: function() { 
      alert("Smth wrong in controller"); 
     } 
    }); 
} 

我需要在父div来算的div。我写这篇文章的代码获得所有的div数:

function count_blocks() {  
    var length = $("#questions > div").length; 
    alert(length); 
} 

我让调用这样

$(document).ready(function() { 
    question_block(); 
    count_blocks(); 
}); 

这里是查看HTML

<div id="questions" class="qustion-div-one" style="position: relative;"></div> 

我problemis,当我跑查看我与length = 0

如何我需要正确运行count_blocks功能?

+1

添加HTML标记与ID问题元 – guradio

回答

3

问题是因为AJAX请求是异步的。这意味着在页面加载时,当您拨打count_blocks()时,页面中没有任何内容。为了解决这个问题,就需要改为调用success回调$.ajax内的功能,如:

$(document).ready(function() { 
    question_block(); 
}); 

function question_block() { 
    $.ajax({ 
    // settings here... 
    success: function(result) { 
     // build html... 
     $("#questions").append(question); 

     count_blocks(); // call here instead 
    }, 
    error: function(x, s, e) { 
     console.dir(x); 
     console.log(s); 
     console.log(e); 
    } 
    }); 
}