jquery无法隐藏输入名称为“style”的表单?

时间:2015-03-27 16:42:27

标签: javascript jquery

我试图隐藏网站上的表单,但它拒绝通过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;
&#13;
&#13;

基本上,如果输入的名称为&#34; style&#34;它无法隐藏表格。如果输入具有不同的名称,则隐藏它就好了。

这是否有原因发生?

1 个答案:

答案 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或其他东西)。