0
該問題已被多次詢問,但這不是重複。我正在使用for循環搜索包括select,input等元素的div。它將類名稱與對象參數匹配,如果匹配,則設置元素的值。用jQuery設置選擇下拉菜單
for(var i in obj) {
if(obj.hasOwnProperty(i)) {
$(editClone).find('.' +i).val(obj[i]);
}
}
它適用於輸入要素精細,但與選擇的元素它會刪除所有的選項,只是將實際元素標籤上的值。
這是select語句之前,我跑我的javascript:
<select class="type">
<option value="Home">Home</option>
<option value="Work">Work</option>
<option value="Mobile">Mobile</option>
<option value="Other">Other</option>
</select>
後,我運行的代碼(在Firebug驗證檢查):
<select class="type">Mobile</select>
它爲什麼要這樣做呢?我認爲val()應該設置一個匹配的選項標籤來選擇。對象值和選項標籤是匹配的,但它沒有做到它應該做的。我在這裏做錯了什麼?
原來我有DIV,我試圖克隆嵌套在HTML中的錯誤位置以及javascript中的錯誤克隆調用。完全不相關的錯誤。下面的答案是正確的,它只是沒有在我的情況下工作,因爲我不明白我遇到的問題。
我希望我能說工作,但那正是我已經有的。我只是沒有在我的示例代碼中包含對象和editClone,因爲它是無關緊要的。出於某種原因,val()將替換select語句內的html(),而不是選擇選項並選擇匹配的語句。 – ryandlf 2012-01-12 04:16:41
Select類最初有選項,而Mobile就是其中一種選擇。 JavaScript將使用Mobile替換所有選項。 – ryandlf 2012-01-12 04:17:28
@ryandlf - 它不會取代任何html。這只是設置A選項,就像你想要的那樣。檢查鉻開發工具或螢火蟲中的HTML看看自己:) – 2012-01-12 04:27:07