2014-09-04 66 views
0

我有一個對象來動態填充我的DropDown列表。動態添加到JS對象與多個元素

var myOptions = [ 
        { name: Projekte[1][1], value: "val1" }, 
        { name: Projekte[2][1], value: "val2" }, 
        { name: Projekte[3][1], value: "val3" }, 
        { name: Projekte[4][1], value: "val4" }, 
        { name: Projekte[5][1], value: "val5" }, 
        { name: Projekte[6][1], value: "val6" }, 
        { name: Projekte[7][1], value: "val7" }, 
        { name: Projekte[8][1], value: "val8" }, 
        { name: Projekte[9][1], value: "val9" }, 
        { name: Projekte[10][1], value: "val10" } 
       ]; 

看起來療法將高達100個項目時的代碼是負責人,所以我怎麼能設置名稱和該對象的值,以正確的長度?

是我的嘗試是在此之前:

var anzahlproj =100; //how many project i get 
var myOptions = [ 
    { name: Projekte[1][1], value: "val1" } 
]; 

for(var i=2;i<anzahlproj + 1; i++){ 
    myOptions[name] +="Projekte["+i+"][1]", 
    myOptions[value] += "val"+i; 
} 

添加了一些正常的對象是沒有問題的,但我怎麼能添加一些與多個元素?

我用:JQuery的1.11.1,jQuery Mobile的1.4.3

回答

0
var myOptions = [], i; 

for (i = 1; i <= 100; i++) { 
    myOptions.push({name: Projekte[i][1], value: "val" + i}); 
} 
+0

尼斯的答案,簡單的短期和工作:) THX – 2014-09-04 09:49:03

+0

@NikiErnst:有幾件事情但在這裏可以考慮:只有當Projekte是一個具有_at least_ 101值的數組時,該代碼纔會起作用,並且它總是會跳過第一個值(數組是我的答案中解釋的)的零索引。 'var anArray = [1,2,3]; console.log(anArray [0]);'會記錄'1'。如果這是一個問題,請使用我最後一個建議的代碼段 – 2014-09-04 10:47:34

+0

@EliasVanOotegem我設置了'我 2014-09-04 13:57:55

0

試試這個代碼

var anzahlproj = 100; //how many project i get 
for (var i = 2; i < anzahlproj + 1; i++) { 
     var myOption = new Option(Projekte[i][1], "val" + i.toString()); 
     myOptions.append($(myOption)); 
} 
+0

「Option」構造函數在哪裏?另外:_「試試這個......」_。有些解釋不會造成傷害,並且連接表達式中的最後一個nit-pik:'i.toString()'是多餘的。如果你想明確地轉換爲一個字符串:'(''+ i)'也較短, – 2014-09-04 09:35:38

+0

選項是DropDown列表框的子元素(在HTML中選擇控件)。這裏myOptions是一個DropDown列表框。 – 2014-09-04 09:41:43

+0

OP的問題/代碼中沒有任何內容表明'myOptions'數組要直接添加到DOM中。他提到了一個DropDown列表,所以我理解你的假設(數據是選項節點),但它仍然只是:假設 – 2014-09-04 10:49:29