Jquery隐藏每个特定类

时间:2014-03-30 16:09:43

标签: javascript jquery

我试图隐藏根据第一次更改隐藏选项,但我尝试过的代码不起作用,并且似乎没有给出任何错误?

例如,如果用户选择A,则必须隐藏D.

这里是小提琴:http://jsfiddle.net/M8MfA/

<select id="mo" name="mo">
     <option value=""></option>
     <option class="m t t2" value="A">A</option>
     <option class="m t" value="B">B</option>
     <option class="m t" value="C">C</option>
     <option class="m t t2" value="D">D</option>    
     <option class="f t t2" value="E">E</option>                      
     <option class="f t" value="F">F</option>    
</select>      

$("#mo").on("change", function(){
    var exclude = $("option:selected", $(this)).attr("class");
    $(exclude).each(function() {
        if($(this).val() != $("#mo option:selected").val())
            $(this).hide();
    });
});

3 个答案:

答案 0 :(得分:0)

exclude是一个类属性字符串,不能轻易用作选择器。我想你更想要

$("#mo").on("change", function(){
    var selected = $("option:selected", this),
        selectedClass = selected.attr("class");
    $("option", this).not(selected).filter(function() {
        return $(this).attr("class") == selectedClass;
    }).hide();
});

答案 1 :(得分:0)

使用Jquery Selector时,您错过了“。”一部分。

ex $('。'+ exclude).....

此外,由于exclude将包含多个类,因此您可能希望将它们拆分为数组和每个类的点。或者可能有更好的方法来做到这一点。

答案 2 :(得分:0)

HTML:

   <select id="mo" name="mo">
     <option value=""></option>
     <option class="m t t2" value="A">A</option>
     <option class="m t" value="B">B</option>
     <option class="m t" value="C">C</option>
     <option class="m t t2" value="D">D</option>    
     <option class="f t t2" value="E">E</option>                      
     <option class="f t" value="F">F</option>    
   </select>

的JQuery:

  $(document).on('change','#mo',function(){
 var exclude = $("option:selected", $(this)).attr("class");
    $('#mo option').each(function() {
        if($(this).attr("class") != exclude)
            $(this).hide();
    });
});

多民: http://jsfiddle.net/ZnfX7/2/