2017-07-21 7 views
0

のループ私はアヤックスでの新たなんだ、と私はdiv要素の多くのためのAjax呼び出しを作成しようとしています。.. のは、私はこのようなDOMがあるとしましょう:Ajaxとdivの

<div id="form"> 
     <div id="child_1"> 
      <div id="child_1_select"></div> 
     </div> 
     <div id="child_2"> 
      <div id="child_2_select"></div> 
     </div> 
     <div id="child_3"> 
      <div id="child_3_select"></div> 
     </div> 
     <div id="child_4"> 
      <div id="child_4_select"></div> 
     </div> 
     <!-- ... --> 
    </div> 

方法を#formにループを進めますか? child_x_selectのすべてに対してAjaxの電話をかけたいと思っています。

ところで、私は...彼が必要として、ユーザーができるだけ多くのdivを追加することができますので、そこになりますどのように多くの#child_x_select私の要求を考慮するための

感謝を知りません!

+0

リクエストするコンテンツの量が多い場合は、1つのリクエストに組み合わせる方がよい場合があります。しかしそれはユースケースに属する。ここで最善の答えを得るために詳細を教えてください。 – eisbehr

+0

あなたはこのようにループしますか?( '#form div [id^= child _] [id $ = _ select]'))each(function(){// code goes here}); – gjijo

+0

@eisbehrいいえ私は '#child_n_div'に2つの選択肢があり、1つは他のものに依存しているので、1つのリクエストに結合したくありません。 –

答えて

1

あなたの#child_n_select要素に共通するクラスを追加することを検討し、その上にjQueryの.each()メソッドを使用する必要があります。

<div id="form"> 
    <div id="child_1"> 
     <div id="child_1_select" class="child_select"></div> 
    </div> 
    <div id="child_2"> 
     <div id="child_2_select" class="child_select"></div> 
    </div> 
    <div id="child_3"> 
     <div id="child_3_select" class="child_select"></div> 
    </div> 
    <div id="child_4"> 
     <div id="child_4_select" class="child_select"></div> 
    </div> 
    <!-- ... --> 
</div> 

<script type="text/javascript"> 
    $('.child_select').each(function() { 
     // Write your AJAX call here, using $(this) to select the active element. 
    }); 
</script> 
0

あなたはAJAX呼び出しの後child_x_selectのすべての要素を選択する必要があることを言っていますか?セレクタをコールバックに登録するだけです。

var xhr= new XMLHttpRequest(); 

xhr.onload = function(e) { 

    // load all of the children using ajax 

    // select the children 
    var children = document.querySelectorAll('[id$="_select"]'); 
    // convert to array and loop 
    Array.prototype.slice.call(children).forEach(function(node){ 
    // do some wacky stuff here 
    }); 
} 
xhr.open("GET", url); 
xhr.send(); 

しかし、あなたは、単にこれはあなたが必要とするすべてである、あなたは各要素をループする必要が言っている場合:あなたはdivsを作成するためのAJAX呼び出しをループ

var children = document.querySelectorAll('[id$="_select"]'); 

Array.prototype.slice.call(children).forEach(function(node){ 
    // do some wacky stuff here 
}); 
0

できるとid名に割り当てますchild_x_select index(i)の値を使用した形式。

$.ajax ({ 
      type:"GET", 
      url: myUrl, 
      success:function(data){ 
       for i in data { 
        $('form').append("<div id='child_"+[i]+"_select'></div>"); 
       } 
     }; 
関連する問題