2013-05-27 24 views
0

我正在寻找使用jQuery的.insertBefore方法重新排列下拉菜单。不过,我在选择每个optionvalue属性时遇到了一些麻烦。jQuery两个<options>具有特定值的切换顺序

实施例:http://jsfiddle.net/4WGvB/1/

基本上,事1应事2之前使用该方法放置。

<select> 
    <option value="1">Thing 2</option> 
    <option value="2">Thing 1</option> 
    <option value="3">Thing 3</option> 
</select> 

$($(("option").attr({value: "2"})).insertBefore($(("option").attr({value: "1"}))); 
+0

你正在使用的语法_creating_新选项的元素,而不是_selecting_他们。 – Barmar

+0

嗯...你能以正确的方式显示答案吗? – lawx

回答

3

您正在使用.attr()方法作为设置器。无论如何,你永远不能使用.attr()作为SELECTOR。

看看这个小提琴:

$('option[value="2"]').insertBefore($('option[value="1"]')); 

http://jsfiddle.net/4WGvB/2/

+0

啊!我曾尝试过,但一定没有做到。要插入变量,那么我只是将引号转义出来,对吧? – lawx

+0

是的,我似乎有一些麻烦逃离报价。这似乎不是这样做的:'$('option [value ='x']')。insertBefore($('option [value =“1”]'));' – lawx

+0

内部使用双引号单引号字符串,反之亦然。 – Barmar