2016-03-06 65 views
1

我用这个在我的选择列表中添加选项:更改所选的选项Jquery的

$("#row_list").append(new Option(item.row_id, item.row_id)); 

我想改变这种代码所选择的选项:

row_value = tab.cols[i].row_id; 
$('#row_list option[value=row_value]').prop('selected', true); 

但它不工作。 我尝试了相同的代码,但没有使用append,它起作用。

你有什么想法吗?

谢谢。

完整代码:

var rows = {}; 
var cols = {}; 

$(document).ready(function() { 
    $.get('../get_rows/', function(rows_data) { 
     rows = rows_data; 
     addRowOpt(1); 
    }, null, 'json'); 
    $.get('../get_cols/', function(cols_data) { 
     cols = cols_data; 
     addColOpt(1); 
    }, null, 'json'); 
}); 

function addRowOpt(populate) { 
    populate = populate || 0; 
    try { 
     rowsTab = JSON.parse(rows); 

     $('#row_list').find('option').remove().end(); 
     $('#id_row_del').find('option').remove().end(); 

     $.each(rowsTab['rows'], function (i, item) { 
      $("#row_list").append(new Option(item.row_id, item.row_id)); 
      $('#id_row_del').append(new Option(item.row_id, item.row_id)); 

      if(populate) { 
       $("#container_corps").append('<div id="' + item.row_id + '" class="row"></div>'); 
      } 
     }); 
    } catch (e) { 
     alert(e); 
    } 
} 

$('#edit_col').click(function() { 
    var id_edit = $('#id_col_del').val(); 
    var tab = JSON.parse(cols); 
    for(var i = tab.cols.length-1; i>=0; i--){ 
     if (tab.cols[i].col_id === id_edit) { 
      row_value = tab.cols[i].row_id; 
      $('#row_list option[value=' + row_value + ']').prop('selected', true); 

      addRowOpt(); 
     } 
    } 
}); 

而我的列表:

<body> 
    <div id="top"> 
     <div class="container-fluid" id="config"> 
      <div class="col-sm-16"> 
       <p> 
        ... 
        Add to row <select name="row_list" id="row_list"> 
        </select> 
        <input type="button" id="add_col" value="Add col" /><br /><br /> 
       </p> 

回答

0

您需要与+操作正确串连字符串:

var row_value = tab.cols[i].row_id; 
$('#row_list option[value=' + row_value + ']').prop('selected', true); 
+0

谢谢,但它不起作用(我也尝试直接设置值:option [value =“val1”])。也许与DOM的问题? – Chaoxys

+0

你能发表更多的代码吗? – dfsq

+0

我编辑了我的第一条消息,ty。 – Chaoxys

0

嗯,你可以做

$("#row_list").val(row_value);