答案 0 :(得分:1)
$("<option</option>")
中的html格式不正确。开始标记缺少>
尝试
var rateArr=[5,2,2,3,5]
$('.rating').each(function(index,row){
for(var i=1; i<= rateArr[index]; i++){
$(this).append($("<option>").text(i).val(i));
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control rating"></select>
<select class="form-control rating"></select>
<select class="form-control rating"></select>
<select class="form-control rating"></select>
<select class="form-control rating"></select>
答案 1 :(得分:1)
@charlietfl的回答是正确的,但是,我想添加一种方法在Web应用的不同部分重用该代码。
<强> JQuery plugin 强>
// You can create a js file called jquery.populate.options.js to store this plugin.
(function($) {
$.fn.extend({
populateOpts: function(options) {
var defaults = {
source: [],
};
var options = $.extend(defaults, options);
return this.each(function(index, row) {
if (options.source && options.source.length > 0) {
for (var i = 1; i <= options.source[index]; i++) {
$(this).append($("<option>").text(i).val(i));
}
}
});
}
});
})(jQuery);
// Now you can do the following
$('.rating').populateOpts({ source: [5, 2, 2, 3, 5] });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control rating"></select>
<select class="form-control rating"></select>
<select class="form-control rating"></select>
<select class="form-control rating"></select>
<select class="form-control rating"></select>
参见?,只需拨打此电话$('.rating').populateOpts({...})
即可填写选项。现在,您可以在Web应用程序的任何部分使用该插件。
<强>解释强>
此插件的名称为populateOpts
,因此,您可以使用JQuery的强大功能来选择您在Web应用中常用的元素,并调用您的插件将您的特定行为应用于选定的元素。
您的插件通过选项source
接收数组,如下所示:{ source: [5, 2, 2, 3, 5] }
。如果您未传递source
选项,则此插件不会填充任何选定的元素。
要在HTML文件中启用插件,只需在script
标记中添加head
标记,如下所示:
<script src="(your path)/jquery.populate.options.js"></script>
该行必须位于jQuery导入的script
标记之后。