添加属性id以动态选择选项

时间:2014-03-14 08:41:34

标签: javascript jquery backbone.js

这是我的代码。

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>

我做错了什么?感谢,

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我想你希望他们给出值id?

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

或者value.cid中可能包含哪些内容?你想传递什么样的数据?