如果CSS被禁用,但JavaScript不被禁用,我该如何隐藏元素(在我的情况下是文件输入字段)?以下任何一项都不会起作用,尽管它们在启用CSS时都有效:
element.style.display = 'none';
element.style.visibility = 'hidden';
element.hidden = 'hidden';
element.hidden = true;
element.setAttribute('hidden','hidden');
element.setAttribute('hidden',true);
据我所知,禁用CSS时唯一能隐藏的是隐藏的输入字段。也许这可能会导致一个解决方案。感谢任何帮助,谢谢!
答案 0 :(得分:1)
因为它是input
元素,您可以将其type
更改为隐藏:
element.type = "hidden";
但请注意,这在某些IE版本中不起作用。在这种情况下,我认为你需要创建一个新元素,给它hidden
类型,并交换它们。
答案 1 :(得分:0)
您只需从DOM中删除元素:
element.parentNode.removeChild(element);
如果您想稍后恢复,可以将其HTML代码(或对元素本身的引用)存储在变量中。如果是表单字段,可能还需要存储其值,然后在恢复元素本身后恢复该值。
此外,请考虑使用hidden
HTML5-attribute,但浏览器的支持可能不会太宽(并且属性本身可能会从HTML标准中删除)。
答案 2 :(得分:0)
我想你可以滥用AREA
元素隐藏其中的内容。
//hide element
var hiddenContainer = document.createElement("AREA");
element.parentNode.insertBefore(hiddenContainer, element);
hiddenContainer.appendChild(element);
//show element
hiddenContainer.parentNode.insertBefore(element, hiddenContainer);