Javascript optgroup隐藏不工作IExlorer

时间:2016-03-15 20:58:33

标签: javascript jquery internet-explorer option optgroup

这段代码在Opera中运行,问题是IE和Android。 使用hiden() javascript。第一选项使用价值马自达(马克)第二显示我们'歌剧':只有所有型号MAZDA(很好)。 'IE':向我们展示所有模型和所有optgroup。也许是JS问题?

$(document).ready(function() {
  $('#model optgroup').hide();enter code here
  $('#Marka').change(function() {
    var text = $(this).val();
    $('#model optgroup').hide();
    $('#model').val('');
    $('#model optgroup[label="' + text + '"]').css({
      'display': 'block'
    });


  });
});

function usun() {
  document.getElementById("first").style.display = "none";

}

https://jsfiddle.net/p051m5u6/

1 个答案:

答案 0 :(得分:0)

HTML(jsfiddle)中存在一些错误:请注意为不同的ID使用不同的值。不能存在两个或多个具有相同ID的元素。

我建议您的解决方案是保存并删除文档准备好的选择组,然后根据选择附加正确的选项组:



var optGroup = {};
$(function () {
  // remove from second list all optgroup and save them in a global variable
  $('#model optgroup').each(function(index, element) {
    optGroup[element.label] = {'optGroup': element};
    $('#model optgroup:eq(0)').remove();
  });

  $('#Marka').change(function(){
    // remove the attached optgroup
    $('#model optgroup').remove();
    // search for the saved optgroup and attach it to the select
    $(optGroup[this.value].optGroup).appendTo('#model');
    $('#model optgroup option:selected').removeAttr("selected");
    $('#first2').prop('selected', true);
  });
});

<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>

<select id="Marka" name="marka_auta">
    <option id="first1" >Marka:</option>
    <optgroup label="Marka Auta:">
        <option value="audi" >Audi</option>
        <option value="mazda" >Mazda</option>
    </optgroup>
</select>
<select id="model" name="model_auta">
    <option id="first2" disabled selected>Model:</option>
    <optgroup id="models1" label="mazda">
        <option>RX-8</option>
        <option>323F</option>
        <option>6</option>
    </optgroup>

    <optgroup id="models2" label="audi">
        <option>A6</option>
        <option>R8</option>
        <option>A4</option>
    </optgroup>
</select>
&#13;
&#13;
&#13;