使用jQuery重新排序SELECT列表中的选项

时间:2013-04-14 00:04:55

标签: jquery html

有关如何对<option>内的<select>元素进行求助/重新排序的任何建议吗? 这是html:

<select class="required" name="jform[params][language]" id="jform_params_language">
    <option value="cs-CZ">Czech (Cestina)</option>
    <option value="en-GB">English (United Kingdom)</option>
    <option value="sk-SK">Slovak (Slovencina)</option>
</select>

我需要它以这种方式:

<select class="required" name="jform[params][language]" id="jform_params_language">
    <option value="sk-SK">Slovak (Slovencina)</option>
    <option value="en-GB">English (United Kingdom)</option>
    <option value="cs-CZ">Czech (Cestina)</option>
</select>

需要提一下我无法修改html。我试图使用jQuery的sort()函数,但不知道该怎么做。

2 个答案:

答案 0 :(得分:9)

您可以使用reverse方法。

var $sel = $('#jform_params_language'),
    $o = $sel.children().toArray().reverse();

$sel.append($o); //[0].selectedIndex = 0;

http://jsfiddle.net/3UWx6/

答案 1 :(得分:4)

E.g。要在第一个选项之前移动第三个选项,我们可以使用以下jquery:

$('select[name="NameOfDropDown"] option:eq(2)').insertBefore($('select[name="NameOfDropDown"] option:eq(0)'));