Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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 如何在“选择标记”中仅显示某些选项?_Javascript_Jquery_Dhtml - Fatal编程技术网

Javascript 如何在“选择标记”中仅显示某些选项?

Javascript 如何在“选择标记”中仅显示某些选项?,javascript,jquery,dhtml,Javascript,Jquery,Dhtml,如何根据选择标记中的值仅显示某些选项 function key(id){ var selectValue = document.getElementById('names').value = document.carmakes.cars.selectedIndex var selectOption = $("#names option:selected").val(); } <select size='5' name='carmakes' o

如何根据选择标记中的值仅显示某些选项

 function key(id){
     var selectValue = document.getElementById('names').value
        = document.carmakes.cars.selectedIndex
        var selectOption = $("#names option:selected").val();
 }

<select size='5' name='carmakes' onchange='key(id)'>
    <option selected='selected' value="-1">Car makes</option>
    <option>BMW</option>
    <option>Audi</option>
</select>

<select required='required' size='5' type='text' id='names'>
<option selected="selected" value="0" >Car names</option>
<option value="1">X5</option>
<option value="2">Q5</option>
选中此项:

或者这样:

一个工作示例:


取决于哪个选择,哪个选择选项要被选择?你能解释多一点,它有点不清楚。你的意思是,例如,如果他们选择宝马在卡马克,然后只显示X5的名称?如果他们选择奥迪,则只显示Q5?您需要在javascript变量或data-*属性中存储附加信息。否则就无法判断一辆车是否属于某个确切的制造商。@Rhumborl是的!你知道怎么做吗?
<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8' />
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script language="javascript" type="text/javascript">  
$(document).ready(function(){

//let's create arrays
var chocolates = [
    {display: "Dark chocolate", value: "dark-chocolate" }, 
    {display: "Milk chocolate", value: "milk-chocolate" }, 
    {display: "White chocolate", value: "white-chocolate" },
    {display: "Gianduja chocolate", value: "gianduja-chocolate" }];

var vegetables = [
    {display: "Broccoli", value: "broccoli" }, 
    {display: "Cabbage", value: "cabbage" }, 
    {display: "Carrot", value: "carrot" },
    {display: "Cauliflower", value: "cauliflower" }];

var icecreams = [
    {display: "Frozen yogurt", value: "frozen-yogurt" }, 
    {display: "Booza", value: "booza" }, 
    {display: "Frozen yogurt", value: "frozen-yogurt" },
    {display: "Ice milk", value: "ice-milk" }];

//If parent option is changed
$("#parent_selection").change(function() {
        var parent = $(this).val(); //get option value from parent 

        switch(parent){ //using switch compare selected option and populate child
              case 'chocolates':
                list(chocolates);
                break;
              case 'vegetables':
                list(vegetables);
                break;              
              case 'icecreams':
                list(icecreams);
                break;  
            default: //default child option is blank
                $("#child_selection").html('');  
                break;
           }
});

//function to populate child select box
function list(array_list)
{
    $("#child_selection").html(""); //reset child options
    $(array_list).each(function (i) { //populate child options 
        $("#child_selection").append("<option value=\""+array_list[i].value+"\">"+array_list[i].display+"</option>");
    });
}

});
</script>

</head>
<body>  
<div class="wrapper">
Category : <select name="parent_selection" id="parent_selection">
    <option value="">-- Please Select --</option>
    <option value="chocolates">Chocolates</option>
    <option value="vegetables">Vegetables</option>
    <option value="icecreams">Ice cream</option>
</select>
<select name="child_selection" id="child_selection">
</select>
</div>
</body>
</html>
$('#carmakes').on('change', function () {
    var selected = $(this).val().toLowerCase();
    if (selected != '0') {
        $('#names').show();
        $('#names option').hide();  //hide all options initially
        $('#names option:eq(0)').show();  //show the first option
        $('#names option.' + selected).show();  //show options with the right class        
    } else {
        $('#names').hide();     
        $('#names option').hide();        
    }
});