如何:使用Address使用jQuery交换选项

时间:2011-07-20 02:49:19

标签: javascript jquery

我正在寻找一种方法来交换它们之间的选项值。 我做了一个简单的小提琴,它会交换输入,但当我改变选择选项时,它似乎不起作用。

我正在使用Address的方法。例如:

var prevAddress = $(this).parent().prev('.forms').find('.first option');
    var nextAddress = $(this).parent().next('.forms').find('.second option');
    var tmp = prevAddress.val();
    prevAddress.val(nextAddress.val());
    nextAddress.val(tmp);

这是小提琴:http://jsfiddle.net/rfe8K/

非常感谢

2 个答案:

答案 0 :(得分:1)

假设您有一个select元素的引用,并且您想要交换前两个选项,那么:

  select.insertBefore(select.options[1], select.options[0]);

会做到这一点。

答案 1 :(得分:1)

<select>元素不起作用。 .val()元素的<select>是当前值,但您无法将<select>设置为不包含的值,您必须确保{{1}有一个<select>子元素匹配您想要设置的值;只是致电<option>并未向.val('pancakes')添加<option value="pancakes">

您需要做的是将包含的<select>元素从第一个<option>移动到第二个<select>,反之亦然。更像是这样:

$('.swap a').click(function() {
    var opt1 = $(this).parent().prev('.forms').find('option');
    var opt2 = $(this).parent().next('.forms').find('option');

    $(this).parent().prev('.forms').find('select').append(opt2);
    $(this).parent().next('.forms').find('select').append(opt1);
});

更新的小提琴:http://jsfiddle.net/ambiguous/VrUmQ/1/