我试图隐藏网站上的表单,但它拒绝通过jquery隐藏。我可以在元素上手动设置样式属性,但.hide()
不会隐藏它。
考虑以下代码:
$(document).ready(function() {
$('form').hide();
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input name="style_name" value="small" type="hidden">
<p>I AM hidden</p>
</form>
<form>
<input name="style" value="small" type="hidden">
<p>I should be hidden</p>
</form>
&#13;
基本上,如果输入的名称为&#34; style&#34;它无法隐藏表格。如果输入具有不同的名称,则隐藏它就好了。
这是否有原因发生?
答案 0 :(得分:3)
&#34;名称&#34;表单中输入元素的属性用于填充表单DOM节点上的属性。你的名字&#34; style&#34;,会覆盖&#34; style&#34;表单的属性,这意味着jQuery无法再访问本机样式对象。它需要这样做才能隐藏表格。
请注意you can still do this with CSS.
$(document).ready(function() {
$('form').addClass("hidden");
});
CSS:
.hidden { display: none; }
隐藏在命名空间中的旧习惯可以追溯到浏览器技术的早期阶段。现在很难想象有人认为这是一个好主意,至少没有一些合格的子空间(如form.fields
或其他东西)。