jQuery:show()不断添加display:block

dco*_*bus 5 jquery

我现在遇到一个小问题,这已经变成了一个令人讨厌的伤口。

我重新创建了Google营业时间,以设置公司在一周中的哪些时间营业,或者该营业日是否营业。现在,如果它们已关闭,则用户可以选择一个复选框,并且DIV隐藏的时间。现在,我使用.show().hide()

现在,假设用户关闭了第一天,并决定“全部应用”到一周中的其余天。我循环浏览并关闭剩余的6天。但是,如果用户在一周中的某一天修改了一天,则.show().hide()函数会自动添加"display: block",这会弄乱循环。

为什么jQuery为什么要在原来不存在的时候添加这种样式,并且在应用.show()or 之前有没有一种干净的方法可以在循环中删除它.hide()

Jim*_*ane 6

在你没有定义显示的元素上,取消隐藏后,JQUERY 会为元素添加显示块。

您可以稍后将其删除。

$("#myrow").show().removeAttr( 'style' )
Run Code Online (Sandbox Code Playgroud)

这包括所有动态样式,因此请注意您是否依赖于此。


Sco*_*ttE 4

例如,如果您对 show() 和 hide() 的效果不满意,请使用 jQuery 的 addClass() 和 removeClass(),并附加一个类来更改可见性。