在Safari中使用jQuery addClass()添加CSS规则后被忽略
我有一个表单,使用jQuery隐藏/取消隐藏一个元素的元素,具体取决于另一个元素的选定值 除了Safari 6.0之外,所有浏览器(如Firefox、Chrome)都可以正常工作 下面是我的函数,它根据元素的值隐藏元素在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;
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;
}