如何将选定的attr添加到下划线模板

时间:2014-04-08 18:40:19

标签: jquery underscore.js

我正在使用下划线模板来呈现下拉选项。我想显示所选下拉选项的文本。这是我正在使用的模板:

<select id = "selectedRegion"><% _.each(data.region,function(field){ %><option value ="<%= field.id%>" ><%= field.name %></option>'
       +' <% }) %></select><% }%>

我想知道如何在下划线中提及'选定'的attr。就像在html中一样:

<option value="N" selected>New york</option>

我试过这种方式,但没有运气

<select id = "selectedRegion"><% _.each(data.region,function(field){ %><option value ="<%= field.id%>" selected= <%= field.selected %> ><%= field.name %></option>'
       +' <% }) %></select><% }%>

这是Js:

var regions = [];
var values = $('#selectedRegion').children('option').each(function(i, e){
 regions.push({id:e.value, name:$(e).html(),select:$(e).is(':selected')?true:false});

}); 

任何人都对如何实现这一点有任何想法?

谢谢!

2 个答案:

答案 0 :(得分:2)

你在哪里

selected= <%= field.selected %>

尝试

<%= (field.selected) ? "selected" : "" %>

如果该字段设置为true,则会输出selected的值。

答案 1 :(得分:0)

试试这个JS:

var regions = [];
var values = $('#selectedRegion').children('option').each(function(i, e){
 regions.push({id:e.value, name:$(e).html(),selected:$(e).is(':selected')?'selected':''});
}); 

这适用于您的模板:

'<select id = "selectedRegion"><% _.each(data.region,function(field){ %><option value="<%= field.id%>" <%= field.selected %> ><%= field.name %></option>'
       +' <% }) %></select><% }%>

这将在每个selected元素的regions属性中按字面存储所需的HTML属性(“selected”),然后在模板中显示时将其输出。