1

如果我有两个这样的选择?

<select id="A">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

<select id="B">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

如何将所选值和文本从选择 A 传输到选择 B。我不希望发生这种情况以响应任何更改或单击。我只需要某种方式,以便以后可以将选择 B 窗口中显示的内容同步到选择 A 中的内容

4

5 回答 5

2

如果您的两个selects 相同,则:

你可以简单地试试这个:

  $('#B').val( $('#A').val() );

您也可以通过函数调用来实现:

function changeValue() {
  $('#B').val( $('#A').val() );
}
于 2012-07-29T09:48:42.483 回答
1

试试这个:

  var selA = $('#A option:selected').val();
  $('#B option[value="'+ selA +'"]').attr('selected', 'selected');

查看演示(更改第一次选择后单击更改)

于 2012-07-29T09:34:40.453 回答
1

另一种选择:

var idx = $('#A option:selected').index();

$('#B option').eq(idx).attr('selected', 'selected');
于 2012-07-29T09:43:47.270 回答
1

如果两个列表不同怎么办

var _AOption = $('#A option:selected');
var _BOptions = $('#B option');
var isInList = 0;
_BOptions.each(function()
{
    $(this).removeAttr('selected');
    if($(this).attr('value') == _AOption.attr('value'))
    {
        $(this).attr('selected', '1');
        isInList = 1;
    }
});

if(isInList  == 0)
{
    $('#B').append('<option selected="1" value="'+_AOption.attr('value')+'" >'+_AOption.html()+'</option>');
}
于 2012-07-29T09:46:59.193 回答
1

您可以使用append()方法:

$('#B').append($('#A option:selected'))

演示

于 2012-07-29T10:55:08.357 回答