我试图隐藏根据第一次更改隐藏选项,但我尝试过的代码不起作用,并且似乎没有给出任何错误?
例如,如果用户选择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();
});
});
答案 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();
});
});