0

$("#id").prop("hidden", false);和有什么区别$("#id").show();

我已经在隐藏的div. 但只能$("#id").prop("hidden", false);工作。

4

2 回答 2

2

来自jQuery hide() 文档

这大致相当于调用 .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

于 2021-05-05T09:32:28.227 回答
0

$("#id").prop("隐藏", false); 这会修改 html 标记的“隐藏”属性。

而 $(“#id”).hide(); 类似于 css 实现“显示:无”。

由于您尝试将两者都应用于隐藏元素,即其中已经具有“隐藏”标签的元素。只有删除隐藏标签才会使元素可见。

$(“#id”).hide(); 不会删除隐藏标签,因此即使显示 CSS 会更改,由于“隐藏”属性的存在,它也不会变得可见。

使用 $(“#id”).show() 覆盖“隐藏”道具并显示 html 元素。

于 2021-05-05T09:34:39.060 回答