簡體   English   中英

是否基於選擇值和數組的if / switch語句?

[英]if/switch statement based on a select value and array?

我有一個簡單的select元素,其中包含多個值,這些值基本上分為四個類別。 為了提高效率,我認為最好將它們分組到數組中,然后檢查“ selected”值是否在其中之一中,並根據選擇值所在的數組打印不同的文本。用開關更有效嗎?

也許有點含糊。 用戶從具有多個值的下拉列表開始(例如:x1,y2,x3,y4,z1)我可以聲明x1,x3然后做某件事,如果y2,y4然后做某事。 但是我認為將這些值放入數組(例如arrayX = x1,x3和arrayY = y2,y4)會更清潔,因此腳本將檢查哪個數組包含選定值,並為每個數組打印一條自定義消息。

經過一番修補,這是一個可行的示例:

  $( "#search2" )
        .change(function() {
            var group1 = ['PL'];
            var group2 = ['AD','RS','CH'];
            var group3 = ['AT','BE','BG','HR','CY','CZ','DK','EE','FI','FR','GR','ES','NL','IR','IS','LT','LU','LV','MT','DE','NO','PT','RO','SK','SI','SE','HU','GB','IT'];
            var group4 = ['SM','MC','LI'];
            var group5 = ['QQ'];

            $("#search2 option:selected").each(function () {
                str2 += $(this).val();
                if ($.inArray(str2, group1) !== -1) {
                    groupNr ="1";
                }
                else if ($.inArray(str2, group2) !== -1) {
                    groupNr = "2";
                }
                else if ($.inArray(str2, group3) !== -1){
                    groupNr = "3";
                }
                else if ($.inArray(str2, group4) !== -1){
                    groupNr = "4";
                }
                else if ($.inArray(str2, group5) !== -1){
                    groupNr = "5";
                }
            });
            if($('#search2').val()){
                $('#submit').removeClass('hidden');
            }
        })
        .trigger( "change" );

他們是一種更簡單的方法。 您可以使用一個數組,並為每個值分配一個組。 喜歡

mygroupArray['IA'] = 1,     mygroupArray['KS'] = 1
mygroupArray['MN'] = 2 and so on

那么你可以做這樣的事情

groupNumber = mygroupArray [optionValue] ===未定義? 4:mygroupArray [optionValue]

這是更快,更簡單的方法。 由於您只做一個比較。 但是還有更多關於初始化的信息。

如果您理解,請告訴我。

這是一種方法,完全可以使用的JSFiddle添加了:

var groups = [
    ['IA', 'KS'],
    ['MN', 'OK'],
    ['KE']
];

for (var i = 0; i < groups.length; i++)
{
    if (groups[i].indexOf(optionValue) >= 0)
    {
        $('.result2').text('element in group ' + (i+1));    
    }
}

檢查完整的JSFiddle: https ://jsfiddle.net/orvvyrhp/1/

更新:具有多選支持的JSFiddle: https ://jsfiddle.net/orvvyrhp/2/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM