Изменить порядок параметров в раскрывающемся списке на основе текста - PullRequest
1 голос
/ 06 февраля 2012

Мне нужно изменить порядок опций в выпадающем списке

<select id="Genre" size="1">                  
        <option value="1">India</option>  
        <option value="2">US</option>  
        <option value="3">UK</option>  
        <option value="4">Africa</option>  
        <option value="5">Australia</option>  
        <option value="6">Newziland</option>    
</select> 

Используя javascript / jQuery, я бы хотел, чтобы вы переместили опцию с именем "Australia" в качестве второй опции.Теперь это второй последний вариант.Это означает первый вариант India, второй вариант Australia, а затем все остальные.

Я пытался $(#Genre>option[text=Australia].insertAfter('#Genre>option[value=1]'), но он не работает ..

Ответы [ 5 ]

6 голосов
/ 06 февраля 2012

Попробуйте:

$(document).ready(function() {
    $('#Genre>option[value=5]').insertAfter('#Genre>option[value=1]')
});

Или получить по содержанию:

$('#Genre>option:contains(Australia)').insertAfter('#Genre>option:contains(India)');
2 голосов
/ 06 февраля 2012

Другой вариант:

$('#Genre option:eq(0)').after(function() {
    return $(this).parent().find('option:contains("Australia")');
});
1 голос
/ 08 февраля 2012

Попробуйте это для решения JavaScript:

var intCountry = '5';
var objSelect = document.getElementById('Genre');

//set initial node
var objInitialNode = objSelect.options[0];

//loop through options in select
for (var j = 0; j < objSelect.length; j++) {
    if (objSelect.options[j].value == intCountry ) {
        objSelect.insertBefore(objSelect.options[j], objInitialNode.nextSibling);
        break;
    }
}
1 голос
/ 06 февраля 2012

если вы точно знаете, что хотите, и этот ход - единственный, вы можете сделать это следующим образом:

$('#Genre option[value=5]').insertAfter($('#Genre option[value=1]'));

затем, чтобы изменить значения на 1,2,3,4,5 (если хотите)

$('#Genre option').each(function(i){
   $(this).val(i);
})
1 голос
/ 06 февраля 2012

Попробуйте следующее:

$("option[value=5]").insertAfter('option[value=1]');

если вы хотите изменить значение, добавьте следующее:

$("option").each(function(index) {
      $(this).val(index+1)
});

Демо: http://jsfiddle.net/Wrz4T/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...