1

我有一个列出年份的下拉列表。现在我想使用单行而不是检查所有行来选择值(基于模型值)。

此代码正在运行

<select class="input-small" id="year" name="year">
    <option <%= year == 2013 ? 'selected' : '' %>>2013</option>
    <option <%= year == 2012 ? 'selected' : '' %>>2012</option>
    <option <%= year == 2011 ? 'selected' : '' %>>2011</option>
    <option <%= year == 2010 ? 'selected' : '' %>>2010</option>
    <option <%= year == 2009 ? 'selected' : '' %>>2009</option>
    <option <%= year == 2008 ? 'selected' : '' %>>2008</option>
    <option <%= year == 2007 ? 'selected' : '' %>>2007</option>
    <option <%= year == 2006 ? 'selected' : '' %>>2006</option>
</select>

但我想将每一行代码优化为单行。例如:

<select class="input-small" id="year" name="year">
    <option>2013</option>
    <option>2012</option>
    <option>2011</option>
    <option>2010</option>
    <option>2009</option>
    <option>2008</option>
    <option>2007</option>
    <option>2006</option>
</select>
<% ('#year').val(year) %> //This is not set my value as per mode 
4

2 回答 2

2
// pass array of years to your template
var years = [2006, 2007, 2008];
// in your template
<select class="input-small" id="year" name="year">
  <% _.each(years, function (val) { %>
  <option <% year === val && print('selected') %>><%= val %></option>
  <% }) %>
</select>
于 2013-06-27T09:48:49.053 回答
0

试试这个 jQuery:

$("#year option:contains('"+year+"')").attr("selected", "selected");
于 2013-06-27T09:39:03.863 回答