2014-03-14 33 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