gpt4 book ai didi

javascript - .css ('display' ) 是 block ,[0].hidden 是假的,.is (':hidden' ) 是真的吗?

转载 作者:数据小太阳 更新时间:2023-10-29 05:07:25 27 4
gpt4 key购买 nike

我遇到了一个 div 被隐藏的情况,即使我刚刚执行了显示具有相同后缀的所有其他 div 的代码:$("[id$='-input-container']") .show()

尽管如此,一个特定的 div 仍然隐藏:$("#single-colorRange-color-input-container")。我想也许它被隐藏在代码后面的某个地方但没有 - 在调用 $inputContainers.show() 之后我立即添加了如下日志记录(和 debugger 语句停止所有后续执行):

console.log($("#single-colorRange-color-input-container").css('display'));      
$inputContainers.show();
console.log($("#single-colorRange-color-input-container").css('display'));
console.log($("#single-colorRange-color-input-container")[0].hidden);
console.log($("#single-colorRange-color-input-container").is(':hidden'));
debugger;

在调用 .show() 之前,第一个 none 被记录为 css/display 值。这是预期的。

然后 block.show() 被调用后被记录为 css/display 值。这是预期的。

然后 false 被记录为结果集第一个(唯一)元素的 hidden 属性。这是预期的。

然后 true 被记录为调用 .is(':hidden') 的结果。这是出乎意料的

.css('display')怎么会是block,[0].hidden怎么会是false,而.is(':hidden') 是真的吗?尽管调用了 .show(),但实际上 div 确实/仍然是隐藏的,如果有一些合理的解释,我认为只为这个 div 添加特殊逻辑是荒谬的。

最佳答案

根据jQuery documentation 隐藏的选择器可以在以下任何情况下返回 true

  • 它们的 CSS 显示值为 none。
  • 它们是 type="hidden"的表单元素。
  • 它们的宽度和高度明确设置为 0。
  • 祖先元素是隐藏的,因此该元素不会显示在页面上。

由于 hidden 是一个非常简单的 bool 值,而 display 是 block,我猜测这是由于最后三个中的一个,特别是最后一点。确保所有祖先也可见。

关于javascript - .css ('display' ) 是 block ,[0].hidden 是假的,.is (':hidden' ) 是真的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34455758/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com