在Safari中使用jQuery addClass()添加CSS规则后被忽略

在Safari中使用jQuery addClass()添加CSS规则后被忽略,jquery,css,safari,addclass,Jquery,Css,Safari,Addclass,我有一个表单,使用jQuery隐藏/取消隐藏一个元素的元素,具体取决于另一个元素的选定值 除了Safari 6.0之外,所有浏览器(如Firefox、Chrome)都可以正常工作 下面是我的函数,它根据元素的值隐藏元素 function hideOptionIfValue(optionElements) { /* Loop through the possible values of value (using JS's arguments) */ for (var i = 1;

我有一个表单,使用jQuery隐藏/取消隐藏一个元素的元素,具体取决于另一个元素的选定值

除了Safari 6.0之外,所有浏览器(如Firefox、Chrome)都可以正常工作

下面是我的函数,它根据元素的值隐藏元素

function hideOptionIfValue(optionElements) {
    /* Loop through the possible values of value (using JS's arguments) */
    for (var i = 1; i < arguments.length; i++) {
        /* Reference arguments[i] as value for further use in .each() */
        var value = arguments[i];

        $(optionElements).each(function(){
            if($(this).val() === value) {
                $(this).addClass('hidden');
            }
        });
    }
或者像这样:

hideOptionIfValue(optionElementsConcerned, 'valueToHide1', 'valueToHide2', 'valueToHide3');
设置此选项后:

var optionElementsConcerned = $('#id1 option, #id2 option, #id3 option');
经过一些基本调试后,问题似乎来自与隐藏类相关联的css规则的“非解释”(来自html5样板):

实际上,在Safari中使用Inspector时,所选选项确实具有指定给它们的隐藏类,但它们确实会显示在下拉菜单中

var optionElementsConcerned = $('#id1 option, #id2 option, #id3 option');
.hidden {
    display: none !important;
    visibility: hidden;
}