隐藏元素而不在jquery中将显示设置为none

时间:2013-08-27 09:51:45

标签: javascript jquery html css

我想折叠表单的一部分,而不将display设置为none。如果我将display设置为none,则会绕过验证,这就是我不想将display设置为none的原因。我知道我可以将可见性设置为hiddenvisible但是此解决方案不可用于渲染视图,因为折叠部分的空间保留在那里。这导致视图看起来非常奇怪,空白空间没有内容。

所以我的问题是隐藏html表单的一部分(不插入占位符),而不将display设置为none,这样我仍然可以执行验证。

一些HTML代码:

<td style="margin: 5px; border-bottom: 1px solid; display:none; overflow: hidden;" colspan="3">
    <div>...</div>
</td>

display最初设置为无,但首次展开后,我将height设置为100%并删除display样式。

6 个答案:

答案 0 :(得分:12)

您可以将其移出屏幕:

$(elem).css("position", "absolute").css("left", -9999);

或者将它的高度设置为0:

$(elem).css("height", 0);

答案 1 :(得分:4)

伪造display:none的最简单方法是将位置设置为绝对(因此元素被取消流动,不再影响外部元素的渲染)和隐藏的可见性(因此不再是绘)。

$(elem).css('visibility', 'hidden').css('position','absolute');

答案 2 :(得分:3)

将元素的不透明度设置为0.

$(elem).css("opacity", 0);

答案 3 :(得分:0)

$("#ele").css({"height" : 0, "width" : 0, "opacity" : 0});

答案 4 :(得分:0)

用jquery隐藏元素......

$('element').addClass('hidden');

并在你的CSS中使用你认为合适的东西来使该元素“隐藏”

.hidden{
  /* whatever you find appropriate */
}

答案 5 :(得分:-1)

您希望将容器高度设置为0,将溢出设置为隐藏。