テキストに基づいてドロップダウンリストのオプションの順序を変更する

ドロップダウンリストでオプションの順序を変更する必要があります

 

javascript/jQueryを使用する2番目のオプションとして "Australia" という名前のオプションを移動してください。 今は2番目の最後のオプションです。つまり、最初のオプション India 、2番目のオプション Australia 、残りのオプションです。

I tried $(#Genre>option[text=Australia].insertAfter('#Genre>option[value=1]') But its not working..

0
@ wheresrhys:私は $(#Genre> option [text = Australia] .insertAfter( '#Genre>オプション[v‌ alue = 1]')のようにsometingを追加したテキストに基づいて検索する必要があります。しかし、それは動作していません...
追加された 著者 Shebin,
なぜあなたはこれをしたいのですか? $( "#ジャンルオプション:eq(1)")))は仕事をしますが、おそらくあまりにも狭い質問に答えていると思います。非常に柔軟な解決策
追加された 著者 wheresrhys,
何を試しましたか? jQueryのドキュメントは非常に良いです: api.jquery.com/category/manipulation
追加された 著者 Felix Kling,

5 答え

これを試して:

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

またはコンテンツで取得する:

$('#Genre>option:contains(Australia)').insertAfter('#Genre>option:contains(India)');
6
追加された
私はテキストに基づいて検索する必要があります。私は '#Genre>オプション[テキスト=オーストラリア]'のように追加しましたが、動作しません....
追加された 著者 Shebin,
さて、私は私の答えを更新しました
追加された 著者 antyrat,

もう一つの変種:

$('#Genre option:eq(0)').after(function() {
    return $(this).parent().find('option:contains("Australia")');
});
2
追加された
テキストに基づいて検索する必要があります。$(#Genre> option [text = Australia] .insertAfter( '#Genre> option [v‌ alue = 1]')
追加された 著者 Shebin,
私の更新答えを見てください
追加された 著者 dfsq,

あなたが欲しいものを正確に知っていて、その動きが唯一のものなら、あなたはそれを次のようにすることができます:

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

値を1,2,3,4,5に変更する(必要な場合)

$('#Genre option').each(function(i){
   $(this).val(i);
})
1
追加された

以下を試してください:

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

値を変更する場合は、以下も追加してください:

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

Demo: http://jsfiddle.net/Wrz4T/

1
追加された
テキストに基づいて検索する必要があります。$(#Genre> option [text = Australia] .insertAfter( '#Genre> option [v‌ alue = 1]')
追加された 著者 Shebin,
@Shebinでは、:contains()セレクタを使用できます。デモを確認する jsfiddle.net/Wrz4T/1
追加された 著者 Sotiris,

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
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript