Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择JS中的数组值_Javascript_Jquery_Html_Arrays - Fatal编程技术网

Javascript 选择JS中的数组值

Javascript 选择JS中的数组值,javascript,jquery,html,arrays,Javascript,Jquery,Html,Arrays,我在JS中的数组有一个问题,(当然我正在学习JS,我现在真的很糟糕。) 事实上,我的select正在打印我的数组值,其中select的值等于“mobile”和“desktop” 这里是我的主要问题:我想添加一个新的值来打印它们!我试图为每个值添加一个二维数组,但由于我对JS不太在行,所以我没有做到这一点 这是我的JS: function afficher_lst_appareils() { // On supprime tous les appareils de la liste déro

我在JS中的数组有一个问题,(当然我正在学习JS,我现在真的很糟糕。)

事实上,我的select正在打印我的数组值,其中select的值等于“mobile”和“desktop”

这里是我的主要问题:我想添加一个新的值来打印它们!我试图为每个值添加一个二维数组,但由于我对JS不太在行,所以我没有做到这一点

这是我的JS:

function afficher_lst_appareils() {

  // On supprime tous les appareils de la liste déroulante
  $('#lst_appareils').empty().prepend("<option value='0'>Sélectionnez un type d'appareil</option>");

  // Le type d'appareil / système qu'on a sélectionné
  var type_appareil = $('#lst_types_appareils').val();

  var lst_appareils_assoc = {

    'Windows 10'                    : 'desktop',
    'Windows 8.1'                   : 'desktop',
    'Windows 8'                     : 'desktop',
    'Windows 7'                     : 'desktop',
    'Windows Server 2003/XP x64'    : 'desktop',
    'Windows XP'                    : 'desktop',
    'Windows 2000'                  : 'desktop',
    'Windows ME'                    : 'desktop',
    'Windows 98'                    : 'desktop',
    'Windows 95'                    : 'desktop',
    'Windows 3.11'                  : 'desktop',
    'Windows Vista'                 : 'desktop',
    'Linux'                         : 'desktop',
    'Ubuntu'                        : 'desktop',

    'Mac OS X'                      : 'mobile',
    'Mac OS 9'                      : 'mobile',
    'iPhone'                        : 'mobile',
    'Android'                       : 'mobile',
    'iPod'                          : 'mobile',
    'iPad'                          : 'mobile',
    'BlackBerry'                    : 'mobile',
    'Mobile'                        : 'mobile'

  };


  // On parcourt le tableau représentant l'ensemble des OS / appareils
  $.each(lst_appareils_assoc, function(key, value) {

    // Si le type de système / appareil correspond à celui sélectionné et s'il est présent en base, 
    // on prend sa clé (le nom du système / de l'appareil)
    if (type_appareil === value && jQuery.inArray(key, arr) !== -1) {

      // Si le nom de l'OS (correspondant à la clé) correspond avec celui soumis au formulaire,
      // on le pré-sélectionne grâce à l'attribut selected
      if (nom_os !== 0 && nom_os === key) {

        $('#lst_appareils').append('<option value="' + key + '" selected>' + key + '</option>');
        $("#lst_appareils option:eq(0)").text('-');
        //$('#zone_lst_appareils').show();
      } else { // Sinon on rajoute les autres normalement

        $('#lst_appareils').append('<option value="' + key + '" >' + key + '</option>');
        $("#lst_appareils option:eq(0)").text('-');
        //$('#zone_lst_appareils').show();
      }
    }
  });
}

// On l'appelle par défaut
afficher_lst_appareils();

// Gestion de l'affichage des appareils selon le type d'appareil sélectionné
$('#lst_types_appareils').on('change', function() {

  afficher_lst_appareils();
  var nom_os = 0;
});
function afficher\u lst\u appareils(){
//论《红色名单》的替代品
$('lst_appareils').empty().prepend(“Sélectionnez un type d'appareil”);
//选择上的设备/系统类型
var type_appareil=$('lst_types_appareils').val();
var lst\U装置\U assoc={
“Windows 10”:“桌面”,
“Windows 8.1”:“桌面”,
“Windows 8”:“桌面”,
“Windows 7”:“桌面”,
“Windows Server 2003/XP x64”:“桌面”,
“Windows XP”:“桌面”,
“Windows 2000”:“桌面”,
“Windows ME”:“桌面”,
“Windows 98”:“桌面”,
“Windows 95”:“桌面”,
“Windows 3.11”:“桌面”,
“Windows Vista”:“桌面”,
“Linux”:“桌面”,
“Ubuntu”:“桌面”,
'Mac OS X':'mobile',
'Mac OS 9':'mobile',
“iPhone”:“手机”,
“Android”:“mobile”,
“iPod”:“mobile”,
‘iPad’:‘mobile’,
“黑莓”:“手机”,
“Mobile”:“Mobile”
};
//关于舞台表演/服装合奏代表公园
$。每个(lst\U装置、功能(键、值){
//系统/设备的类型对应于基本的选择和发布,
//关于prend sa clé(系统名称/设备名称)
如果(键入设备===value&&jQuery.inArray(键,arr)!=-1){
//我的名字(对应的字母)对应于公式,
//论选择的属性
if(nom_os!==0&&nom_os==key){
$('lst#u装置')。附加(''+key+'');
$(“#lst#U设备选项:等式(0)”).text('-');
//$(“#区域设备”).show();
}else{//Sinon关于拉朱特-奥特雷斯规范
$('lst#u装置')。附加(''+key+'');
$(“#lst#U设备选项:等式(0)”).text('-');
//$(“#区域设备”).show();
}
}
});
}
[关于''Appel.P.D.E.Faut的'/''
固定装置();
//选择类型的行政长官职位
$('#lst_类型_设备')。on('change',function(){
固定装置();
var nom_os=0;
});
谢谢

(这是我的HTML以防万一……)


设备类型:
>桌面

根据选择获取设备类型(移动或桌面)的最简单方法是:

  var lst_appareils_assoc = {

    'Windows 10'                    : 'desktop',
    'Windows 8.1'                   : 'desktop',
    'Windows 8'                     : 'desktop',
    'Windows 7'                     : 'desktop',
    'Windows Server 2003/XP x64'    : 'desktop',
    'Windows XP'                    : 'desktop',
    'Windows 2000'                  : 'desktop',
    'Windows ME'                    : 'desktop',
    'Windows 98'                    : 'desktop',
    'Windows 95'                    : 'desktop',
    'Windows 3.11'                  : 'desktop',
    'Windows Vista'                 : 'desktop',
    'Linux'                         : 'desktop',
    'Ubuntu'                        : 'desktop',

    'Mac OS X'                      : 'mobile',
    'Mac OS 9'                      : 'mobile',
    'iPhone'                        : 'mobile',
    'Android'                       : 'mobile',
    'iPod'                          : 'mobile',
    'iPad'                          : 'mobile',
    'BlackBerry'                    : 'mobile',
    'Mobile'                        : 'mobile'

  };

var selection = 'Windows 10';

var result = lst_appareils_assoc[selection];

alert(result);

通过在方括号中传递字符串“Windows 10”(或其他任何字符串),它将查找值,而无需在每个项目周围循环。这使它像一本简单的字典一样工作。

事实上很容易,多亏了@Sohnee,我设法找出了我的价值所在

我确实用3个不同的数组替换了我以前的数组,而且效果很好

    var e = document.getElementById("lst_types_appareils");
    var strUser = e.options[e.selectedIndex].value;


    if(strUser === 'desktop'){
        var lst_appareils_assoc = {

            'Windows 10'                    : 'desktop',
            'Windows 8.1'                   : 'desktop',
            'Windows 8'                     : 'desktop',
            'Windows 7'                     : 'desktop',
            'Windows Server 2003/XP x64'    : 'desktop',
            'Windows XP'                    : 'desktop',
            'Windows 2000'                  : 'desktop',
            'Windows ME'                    : 'desktop',
            'Windows 98'                    : 'desktop',
            'Windows 95'                    : 'desktop',
            'Windows 3.11'                  : 'desktop',
            'Windows Vista'                 : 'desktop',
            'Linux'                         : 'desktop',
            'Ubuntu'                        : 'desktop'


        };
    }
    else if(strUser === 'mobile'){

        var lst_appareils_assoc = {

            'Mac OS X'                      : 'mobile',
            'Mac OS 9'                      : 'mobile',
            'iPhone'                        : 'mobile',
            'Android'                       : 'mobile',
            'iPod'                          : 'mobile',
            'iPad'                          : 'mobile',
            'BlackBerry'                    : 'mobile',
            'Mobile'                        : 'mobile'

        };
    }
    else if(strUser === 'tous'){

       var lst_appareils_assoc = {

            'Windows 10'                    : 'tous',
            'Windows 8.1'                   : 'tous',
            'Windows 8'                     : 'tous',
            'Windows 7'                     : 'tous',
            'Windows Server 2003/XP x64'    : 'tous',
            'Windows XP'                    : 'tous',
            'Windows 2000'                  : 'tous',
            'Windows ME'                    : 'tous',
            'Windows 98'                    : 'tous',
            'Windows 95'                    : 'tous',
            'Windows 3.11'                  : 'tous',
            'Windows Vista'                 : 'tous',
            'Linux'                         : 'tous',
            'Ubuntu'                        : 'tous',

            'Mac OS X'                      : 'tous',
            'Mac OS 9'                      : 'tous',
            'iPhone'                        : 'tous',
            'Android'                       : 'tous',
            'iPod'                          : 'tous',
            'iPad'                          : 'tous',
            'BlackBerry'                    : 'tous',
            'Mobile'                        : 'tous'

        }; 

    }

请使用小提琴,因为代码不完整。。。
arr
nom_os
在哪里定义?
    var e = document.getElementById("lst_types_appareils");
    var strUser = e.options[e.selectedIndex].value;


    if(strUser === 'desktop'){
        var lst_appareils_assoc = {

            'Windows 10'                    : 'desktop',
            'Windows 8.1'                   : 'desktop',
            'Windows 8'                     : 'desktop',
            'Windows 7'                     : 'desktop',
            'Windows Server 2003/XP x64'    : 'desktop',
            'Windows XP'                    : 'desktop',
            'Windows 2000'                  : 'desktop',
            'Windows ME'                    : 'desktop',
            'Windows 98'                    : 'desktop',
            'Windows 95'                    : 'desktop',
            'Windows 3.11'                  : 'desktop',
            'Windows Vista'                 : 'desktop',
            'Linux'                         : 'desktop',
            'Ubuntu'                        : 'desktop'


        };
    }
    else if(strUser === 'mobile'){

        var lst_appareils_assoc = {

            'Mac OS X'                      : 'mobile',
            'Mac OS 9'                      : 'mobile',
            'iPhone'                        : 'mobile',
            'Android'                       : 'mobile',
            'iPod'                          : 'mobile',
            'iPad'                          : 'mobile',
            'BlackBerry'                    : 'mobile',
            'Mobile'                        : 'mobile'

        };
    }
    else if(strUser === 'tous'){

       var lst_appareils_assoc = {

            'Windows 10'                    : 'tous',
            'Windows 8.1'                   : 'tous',
            'Windows 8'                     : 'tous',
            'Windows 7'                     : 'tous',
            'Windows Server 2003/XP x64'    : 'tous',
            'Windows XP'                    : 'tous',
            'Windows 2000'                  : 'tous',
            'Windows ME'                    : 'tous',
            'Windows 98'                    : 'tous',
            'Windows 95'                    : 'tous',
            'Windows 3.11'                  : 'tous',
            'Windows Vista'                 : 'tous',
            'Linux'                         : 'tous',
            'Ubuntu'                        : 'tous',

            'Mac OS X'                      : 'tous',
            'Mac OS 9'                      : 'tous',
            'iPhone'                        : 'tous',
            'Android'                       : 'tous',
            'iPod'                          : 'tous',
            'iPad'                          : 'tous',
            'BlackBerry'                    : 'tous',
            'Mobile'                        : 'tous'

        }; 

    }