Атрибут val
не работает, потому что <select>
берет свое значение из <option>
s, которые имеют атрибут selected
.Я не очень знаком с Усами, но это должно работать:
// snip...
var html = Mustache.to_html(template, data);
$(html)
.find('option[value=3]').attr('selected', true)
.end().appendTo('body');
Я думаю, что шаблон, который вы используете, не идиоматический Усы - он слишком грубый;вы на самом деле не шаблонизируете ничего.Примерно так может быть больше усов:
var template = '<select>{{#options}}' +
'<option value="{{val}}" {{#sel}}selected{{/sel}}>' +
'{{txt}}' +
'</option>' +
'{{/options}}</select>',
data = {options: [
{val: 1, txt: 'uno'},
{val: 2, txt: 'dos'},
{val: 3, txt: 'tres', sel: true}
]};
var html = Mustache.to_html(template, data);
$(html).appendTo('body');
Демонстрация →