2014-05-15 114 views
1

http://jsfiddle.net/5m86J/6/通過對象

returnLOB =[ 
    { 
     id: 1, 
     name:"CIB" 
    }, 
    { 
     id: 2, 
     name:"GTI" 
    } 
] 

以上的數組循環填充下拉是objects.I陣列需要填充下面下拉與來自陣列選項。

<div id="LOBSelect" class="clearfix displayOnCreate"> 
    <span class="label">Dropdown</span> 
    <select name="lob-select" class="dk" id="lobSelect"></select> 
</div> 

下面的循環僅產生具有選項形式對象[GTI]不是第一個下拉。 任何人都可以告訴我這裏有什麼問題。

for (var j = 0; j < returnLOB.length; j++){ 
    $('#LOBSelect').find('select[name="lob-select"]').html($('<option/>', { 
     value: returnLOB[j].name, 
     text: returnLOB[j].name, 
     id: returnLOB[j].id 
    })); 
} 
+0

http://jsfiddle.net/satpalsingh/bX8nK/ – Satpal

+2

不知道爲什麼這是downvoted? OP顯示了代碼,對問題的一個很好的解釋,提供了一個小提琴並展示了他們自己做出的努力。你還想要什麼呢? –

+0

在你的循環中,你每次都(重新)設置html。您需要創建一個選項,然後將其附加到選擇 –

回答

3

需要使用.append()代替.html()

插入內容,由參數指定的,所述集合中匹配的元素中的每個元素的結束。

代碼

$('#LOBSelect').find('select[name="lob-select"]').append($('<option/>', { 
    value: returnLOB[j].name, 
    text: returnLOB[j].name, 
    id: returnLOB[j].id 
})); 

DEMO

+0

你剛剛改進了我對'append'的使用。謝謝。 –

1

演示:http://jsfiddle.net/lotusgodkk/5m86J/7/

for (var j = 0; j < returnLOB.length; j++){ 
    $('#LOBSelect').find('select[name="lob-select"]').append($('<option/>', { 
     value: returnLOB[j].name, 
     text: returnLOB[j].name, 
     id: returnLOB[j].id 
    })); 
} 
-1

試試這個:

for (var i = 0; i < returnLOB .length; i++) { 
       $("#lobSelect").append("<option id='"+returnLOB [i].Name+"' value='" + returnLOB [i].Name+ "'>" + result.results[i].Name + "</option>"); 
      } 
+0

這可能是「容易出錯」方面最差的方法。 –

1

這可以做這樣的:http://jsfiddle.net/bX8nK/3/

var returnLOB = [{ 
    id: 1, 
    name: "CIB" 
}, { 
    id: 2, 
    name: "GTI" 
} 

] 

$(returnLOB).each(function() { 
    var lob = this; 
    $('#LOBSelect select[name=lob-select]').append(
     $('<option/>', { 
      value: lob.name, 
      text: lob.name, 
      id: lob.id 
     }) 
    ); 
}); 

其被選擇後直接調用的.find()方法,可以通過延伸選擇器本身進行更有效的/可讀的。

+0

非常感謝!像魅力一樣工作 – Spdexter