2014-03-14 35 views
0

這是我的代碼。添加屬性ID動態選擇選項

HTML

<select id="drop_opts"> 
      <option>1<option> 
      <option>2<option> 
      <option>3<option> 
     </select> 

骨幹

this.collection.each(function(value){ 
       $('#drop_opts option').each(function(){ 
        $(this).attr('id', value.cid); 
       }); 
      }); 

我得到的結果是

<select id="drop_opts"> 
      <option id="c3">1<option> 
      <option id="c3">2<option> 
      <option id="c3">3<option> 
     </select> 

我在做什麼錯?謝謝,

+0

value.cid中的cid是什麼? –

+0

你爲什麼每個都放兩個?這是什麼。收集 –

+0

@ C-link cidmodel.cid 模型的一個特殊屬性,cid或客戶端id是在首次創建時自動分配給所有模型的唯一標識符。當模型尚未保存到服務器時,客戶端ID很方便,並且還沒有最終的真實ID,但已經需要在UI中可見。 – Defyleiti

回答

1

因爲在集合中的每個迭代中,要更改所有選項的值

var $opts = $('#drop_opts option'); 
this.collection.each(function (value, i) { 
    $opts.eq(i).attr('id', value.cid); 
}); 

如果你想使用該值作爲ID,也沒有必要收集循環

$('#drop_opts option').attr('id', function(){ 
    return $(this).val() 
}); 

演示:Fiddle

+0

第一個是我的問題的答案。謝謝\ – Defyleiti

0

我想你希望他們給值的ID?

this.collection.each(function(value){ 
       $('#drop_opts option').each(function(){ 
        $(this).attr('id', $(this).val()); 
       }); 
      }); 

或者value.cid中可能存在什麼?你想傳遞什麼樣的數據?

+0

cidmodel.cid 模型的特殊屬性,cid或客戶端id是在首次創建時自動分配給所有模型的唯一標識符。當模型尚未保存到服務器時,客戶端ID很方便,並且還沒有最終的真實ID,但已經需要在UI中可見。 – Defyleiti

+0

您還需要通過value.cid迭代(for,foreach),以將其值與該選項匹配。 – Beardminator