Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 添加属性id以动态选择选项_Javascript_Jquery_Backbone.js - Fatal编程技术网

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

Javascript 添加属性id以动态选择选项,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,这是我的密码 HTML <select id="drop_opts"> <option>1<option> <option>2<option> <option>3<option> </select> 我得到的结果是 <select id="drop_opts"> <opt

这是我的密码

HTML

<select id="drop_opts">
            <option>1<option>
            <option>2<option>
            <option>3<option>
        </select>
我得到的结果是

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

1.
2.
3.

我做错了什么?谢谢,

因为在集合的每次迭代中,您都在更改all选项的值

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()
});

演示:

我猜您希望他们给出值id

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

或者value.cid中可能包含什么?您希望传递什么类型的数据?

value.cid中的cid是什么?为什么每个都放两个?这是什么。collection@C-link cidmodel.cid是模型的一个特殊属性,cid或客户端id是一个唯一的标识符,在第一次创建模型时自动分配给所有模型。如果模型尚未保存到服务器,并且没有最终的真实id,但需要在UI.cidmodel.cid中可见,则客户机id非常方便。作为模型的特殊属性,cid或客户机id是在首次创建模型时自动分配给所有模型的唯一标识符。当模型尚未保存到服务器,并且没有最终的真实id,但需要在UI中可见时,客户端id非常方便。您还需要迭代(for,foreach)value.cid,以将其值与选项匹配。
this.collection.each(function(value){
                $('#drop_opts option').each(function(){
                    $(this).attr('id', $(this).val());
                });
            });