Javascript 隐藏没有CSS的元素
如果禁用了CSS,但JavaScript没有禁用,那么如何隐藏元素(在我的例子中是一个文件输入字段)?尽管启用CSS后,以下各项都不起作用:Javascript 隐藏没有CSS的元素,javascript,css,Javascript,Css,如果禁用了CSS,但JavaScript没有禁用,那么如何隐藏元素(在我的例子中是一个文件输入字段)?尽管启用CSS后,以下各项都不起作用: element.style.display = 'none'; element.style.visibility = 'hidden'; element.hidden = 'hidden'; element.hidden = true; element.setAttribute('hidden','hidden'); element.setAttribut
element.style.display = 'none';
element.style.visibility = 'hidden';
element.hidden = 'hidden';
element.hidden = true;
element.setAttribute('hidden','hidden');
element.setAttribute('hidden',true);
据我所知,当CSS被禁用时,唯一可以隐藏的是一个隐藏的输入字段。也许这能找到解决办法。感谢您的帮助,谢谢 您可以从DOM中删除元素:
element.parentNode.removeChild(element);
如果您想稍后恢复它,可以将其HTML代码(或对元素本身的引用)存储在变量中。对于表单字段,可能还需要存储其值,然后在恢复元素本身后恢复该值
也可以考虑使用,尽管浏览器的支持可能不会太大(并且属性本身可以从HTML标准中删除)。
< P>因为它是<代码>输入< /C>元素,您可以将它的<代码>类型< /代码>改为隐藏:element.type = "hidden";
但是请注意,这在某些IE版本中不起作用。在这种情况下,我认为您需要创建一个新元素,将其命名为hidden
类型,然后交换它们
演示:我想您可能会滥用
区域
元素来隐藏其中的某些内容
//hide element
var hiddenContainer = document.createElement("AREA");
element.parentNode.insertBefore(hiddenContainer, element);
hiddenContainer.appendChild(element);
//show element
hiddenContainer.parentNode.insertBefore(element, hiddenContainer);
“如果CSS被禁用”-如果HTML被禁用怎么办?这种奇怪的要求有什么真正的原因吗?不是很实际的原因,有点像挑战。我希望这是事实,不会投入生产;-)-1因为我觉得这个问题实际上没有用。CSS是设计HTML样式的语言,可见性控制是样式设计的一部分。这是为了符合508标准吗?我已经看到了。如果只存储内容-您将不知道实际在哪里还原它。@要还原元素,可以保留引用并在以后使用。例如,
var elementCache={};elementCache[element.id]=元素代码>。现在可以从DOM中删除元素,以后再恢复。如有必要,您还可以存储对其父级的引用,例如elementCache[element.id+'\u parent']=element.parenNode代码>@RobG:parent也不够fooremovemebar
OP可以将空白范围作为占位符,这取决于他们试图做什么。