2017-02-15 2 views
0

Ich versuche, dies noch sauberer zu machen, ich habe Dutzende von Zeilen zu diesem verkürzt, aber müssen meine Spalte/Dropdown-Werte durchlaufen und führen Sie durch die Funktion. Ich blende.Wie kann ich das in eine Schleife verwandeln?

function populateDropdowns (dropdownObject) { 
$.ajax({ 
    url: "website eq '"+dropdownObject.column+"'", 
    type: "GET", 
    headers: { 
     "accept": "application/json;odata=verbose", 
     }, 
     success: function (data) { 
      var authOne = (data.d.results[0].Choices.results); 
      $(dropdownObject.dropdown).empty(); 
      $.each(authOne, function(i, p) { 
       $(dropdownObject.dropdown).append($('<option></option>').val(p).html(p)); 
      }); 
     }, 
     error: function (error) { 
      alert(JSON.stringify(error)); 
     } 
    }); 
} 
var dropdownObject = {}; 
dropdownObject = {column:"value1", dropdown:'#id1'}; populateDropdowns(dropdownObject); 
dropdownObject = {column:"value2", dropdown:'#id2'}; populateDropdowns(dropdownObject); 
dropdownObject = {column:"value3", dropdown:'#id3'}; populateDropdowns(dropdownObject); 
dropdownObject = {column:"value4", dropdown:'#id4'}; populateDropdowns(dropdownObject); 
dropdownObject = {column:"value5", dropdown:'#id5'}; populateDropdowns(dropdownObject); 
+0

Schleife von 1 bis 5 und Verwendung Verkettung –

Antwort

0

Wenn Ihre Werte bis 5 festgelegt sind, sollte eine for-Schleife funktionieren.

for(var i = 1; i < 6; i++){ 
    populateDropdowns({column : "value" + i, dropdown:'#id' + i}); 
} 

EDIT 1: Wenn die Werte nicht sequentiell sind, dann kann man Objekte Array an eine forEach Schleife passieren.

var dropdowns = [ 
    {column: "value1", dropdown: "#id1"}, 
    {column: "value2", dropdown: "#id2"}, 
    {column: "value3", dropdown: "#id3"}, 
    {column: "value4", dropdown: "#id4"}, 
    {column: "value5", dropdown: "#id5"} 
; 

dropdowns.forEach(dropdown => populateDropdowns(dropdown)); 
+0

Ich schätze Ihre Antwort, aber ich hätte angeben sollen, dass diese Werte nicht sequentiell sind. Sie sind alle einzigartig. – Ryan

+0

Können Sie echte Namen und IDs oder eine Regel für die Erkennung eingeben? – Massimo

+0

Der Code wurde gemäß Ihren Kommentaren aktualisiert. – Agalo

0

Wenn Sie durch einige Daten in einer Schleife wollen, sollten die Daten wahrscheinlich in einem Array sein:

const dropdownObjects = [ 
    { column: 'value1', dropdown: '#id1' }, 
    { column: 'value2', dropdown: '#id2' }, 
    { column: 'value3', dropdown: '#id3' }, 
    // ... 
]; 

for (var i = 0; i < dropdownObjects.length; i++) { 
    populateDropdowns(dropdownObjects[i]); 
} 

Oder kurz und bündig:

dropdownObjects.forEach(populateDropdowns); 
+0

Danke, das ist auch eine gute Antwort. – Ryan

Verwandte Themen