0

我需要使用选项值来选择名称,以选择特定的值或索引。值“{{design}}”中来自 db 的数据。我确实得到了正确的值,但我没有设法在当前选项值上设置“选定”。这是代码:

console.log("{{design}}");
$(document).ready(function () {
       var options = $('select').children('option');
    var size =    $('select').children('option').length;
    for (i=0;i<size;i++)
    {
        if ( options[i].innerHTML==="{{design}}")
        {
            options.selectedIndex=i;
        }
    }
});

html是:

      <select name="design" required id="design"  >
                <option value="1">flowers</option>
                <option value="2">classic</option>
                <option value="3">roses</option>
            </select>

我需要修改 {{design}} 值,假设它是 2,所以它将是 <option value="2" selected>classic</option>`

谢谢!

解决了

嗨,如果有人遇到麻烦,找到了问题的解决方案。

 $(document).ready(function () {
            var options =      $('select').children('option');
        var size =    $('select').children('option').length;
        for (i=0;i<size;i++)
        {
            if ( $('select').children('option')[i].value === "{{design}}")
            {

                 $('select').children('option')[i].selected=true;
            }
        }
    });

正确的方法是找到正确的选项值然后-> [i].selected=true

祝你好运

4

3 回答 3

0

尝试这个:

$(document).ready(function(){
    $('select option').each(function(i){
       //if this option contains the word "{{design}}" Then this is selected
        if( $(this).html().indexOf("{{design}}") != -1)
            $(this).attr('selected',true);
    });
});
于 2013-11-13T14:08:03.093 回答
0

如果我理解正确,那么您走在正确的道路上,只是绕了一个小弯。尝试这个:

if ( options[i].innerHTML==="{{design}}")
    {
        options.attr('selected', 'selected');
    }

.each() 用法示例:

$(document).ready(function(){
    $('select option').each(function(i){
        if( i.value === "{{design}}"){
            $(this).attr('selected','selected');
        }
    });
});
于 2013-11-13T13:19:28.003 回答
0

尝试这个

var selectedvalue=2; //option with value 2 should be selected
$("#design option[value=selectedvalue]").attr("selected","selected");

希望这可以帮助...

于 2013-11-13T13:30:21.517 回答