$("#id").prop("hidden", false);
和有什么区别$("#id").show();
?
我已经在隐藏的div
. 但只能$("#id").prop("hidden", false);
工作。
$("#id").prop("hidden", false);
和有什么区别$("#id").show();
?
我已经在隐藏的div
. 但只能$("#id").prop("hidden", false);
工作。
这大致相当于调用 .css( "display", "none" ) ,只是 display 属性的值保存在 jQuery 的数据缓存中,以便稍后可以将 display 恢复为其初始值。如果一个元素的显示值为 inline 并且被隐藏然后显示,它将再次被显示为 inline。
隐藏属性:
隐藏的全局属性是一个布尔属性,指示该元素尚未相关或不再相关。例如,它可用于隐藏在登录过程完成之前无法使用的页面元素。浏览器不会渲染具有隐藏属性集的元素。
所以简而言之,粗略的区别在于 jQuery hide 设置display
元素的样式属性,以便它们不会被渲染,而隐藏属性更具功能/语义 - 但也可以被 css 覆盖。
如果您的任务是设置样式或动画效果,请使用 jQuery css 操作函数(隐藏/显示)。
编辑:在您的问题中,您实际上使用$("#id").prop("hidden", false);
了 which 从元素中删除(如果存在)隐藏属性(不得来自 css)。因此,如果您的元素实际上是通过 css 隐藏的,并且您删除了 hidden 属性,它可能会由于 css 而保持隐藏状态。
如果要显示隐藏元素,请通过 css使用.show()
或设置属性。display
$("#id").prop("隐藏", false); 这会修改 html 标记的“隐藏”属性。
而 $(“#id”).hide(); 类似于 css 实现“显示:无”。
由于您尝试将两者都应用于隐藏元素,即其中已经具有“隐藏”标签的元素。只有删除隐藏标签才会使元素可见。
$(“#id”).hide(); 不会删除隐藏标签,因此即使显示 CSS 会更改,由于“隐藏”属性的存在,它也不会变得可见。
使用 $(“#id”).show() 覆盖“隐藏”道具并显示 html 元素。