在 IE 中,div 的显示属性不会从“无”更改为“块”

Posted

技术标签:

【中文标题】在 IE 中,div 的显示属性不会从“无”更改为“块”【英文标题】:Display property of a div is not changing from "none" to "block" in IE 【发布时间】:2015-07-15 09:18:41 【问题描述】:

我有一个点击按钮的弹出窗口。我通过单击按钮将 div 的显示属性从“无”更改为“阻止”,该 div 位于弹出窗口内。当我在控制台中检查该 div 的显示属性时,它只显示“阻止”,但实际上该 div 仍然不可见并且显示属性值在页面的 html 中没有改变。

jsp文件中的HTML代码

我在弹出窗口中有一个按钮,在代码行下方该按钮的单击事件被调用 将显示属性从“none”更改为“block”

dojo.style(dojo.byId('error_text_reorder'), "display", "block");

当我点击按钮时,这段代码正在执行,但 div 仍然不可见。 但是如果我重新加载弹出窗口,则 div 是可见的。

除了这个 dojo 代码,我还尝试了这个 js 代码

document.getElementsByName("error_text_qty")[1].style.display='block'; 

这在 Firefox 中可以正常工作,但在 IE 中不起作用。

这个家伙的任何跨浏览器解决方案.....?

【问题讨论】:

当您提出问题时,文本区域右侧有一个橙色的大如何格式化框,其中包含有用的信息。还有一个完整的格式化辅助工具栏。还有一个 [?] 按钮提供格式化帮助。 一个预览区域,位于文本区域和发布您的问题按钮(以便您必须扫描过去才能找到该按钮)之间,显示您的帖子发布后的样子。请在以后使用它们。 :-) 发布尽可能少的代码来复制您的问题! 您使用的是哪个版本的道场?请添加一些代码,以便我们查看您到目前为止所做的尝试。 【参考方案1】:

dojo 和 jquery 都具有这种基本支持跨浏览器更改 dom 元素的样式。这个问题可能有几个解决方案。

    升级您的 dojo 版本。 每个 dojo 版本都支持一组特定的浏览器。您使用的dojo版本可能不支持您使用的IE浏览器版本。 通过 ID 而不是名称获取,反之亦然。 您的两个代码示例使用两个不同的查询,dojo 代码通过 id dojo.byId 获取 div,JS 示例是通过名称 getElementsByName .您真的在一个元素中设置了 id 并在 div 中的另一个元素上设置了名称吗?如果需要,评估和调整您的代码。

尝试发布更多相关代码,以便我们更好地为您提供帮助,例如您尝试操作的 dom 元素的 HTML。

【讨论】:

嗨 Danny,我使用的是 dojo 版本 1.8.7。 我用这段代码来改变显示属性值,它在firefox中工作正常,但在IE中不起作用。奇怪的是,当我在 IE 控制台中检查 display 属性的值时,它只显示块。但是 div 在弹出窗口中仍然不可见。 document.getElementsByName("error_text_qty").[1].style.display='block'; document.getElementsByName("error_text_qty")[1].style.color='red';给定 id (error_text_qty) 是 div 元素的 id,这个 div 也在 div 中。 你用的是什么版本的IE?您可以发布您尝试操作的 HTML,例如 div 和弹出窗口吗?谢谢! 我正在使用 IE 8 和 IE 11。我正在使用 dijit/Dialog (dojo) 创建弹出窗口。
Some Text
这个
标签也在一个 div 元素下。我通过使用更改了显示属性: document.getElementById("error_text_reorder").style.display="block"; document.getElementById("error_text_reorder").style.color="red";但是 div 在弹出窗口中仍然不可见,而这一行 "document.getElementById("error_text_reorder").style.display" 仅在 IE 8 控制台中显示 "block"。

以上是关于在 IE 中,div 的显示属性不会从“无”更改为“块”的主要内容,如果未能解决你的问题,请参考以下文章

当我单击“更多”按钮时如何将 div 高度属性更改为自动

如何在超链接单击 [重复] 上将浏览器从 IE 更改为 Chrome

如何将 WebBrowser 从 IE 更改为 Firefox

将任意 Flash 对象 wmode 更改为透明

使用 JavaSCript 在 IE 中更改 ID css

Angular 指令从元素中删除原始属性