标签在IE8中找不到动态创建的元素
Label not finding dynamically created element in IE8
在网页上,我有一个javascript函数,它添加了一个具有以下层次结构的div:
<div style="display:inline-block;overflow:hidden;">
<label for="myInput" style="display: inline-block; max-width: 300px;">
<button disabled style="pointer-events:none;" >Browse to file</button>
<p style="display:inline">ends up being file name</p>
<img/>
<input id="myInput" type="file" style="width:0px;"/>
</label>
</div>
这个想法是点击标签中的任何东西都会触发文件输入,这在IE8之外的任何地方都很有效。
在IE8中,动态创建标签不会触发文件输入,我注意到,如果我将动态创建的标签的"for"属性更改为指向不是动态创建的文件输入,它将正常工作。
标签似乎找不到动态创建的文件输入。
问题:-如何获取标签以查看动态创建的文件输入?-有没有一种方法可以刷新DOM以允许标签查看文件输入?
注意:如果你使用IE11的仿真模式测试它,它可以工作,但在真正的IE8浏览器中,它不能
我不知道为什么,但当您使用.innerHTML
填充label
元素时,IE8似乎启用了预期的行为。可能还有其他更好的技巧可以避免HTML操作,但这应该足以作为权宜之计。
相关文章:
- 在运行时创建元素时移到一边时出错
- 如何在动态创建元素的内联onclick事件中传递对象
- 在 jquery 中创建元素
- 当我动态创建元素时,选择的插件不起作用
- HTML javascript函数来创建元素
- 从外部 js 脚本创建元素并插入到 html 中
- 在 d3 中为数据列表创建元素
- 如何在循环中创建元素并将其添加到DOM中
- JQuery-创建元素并将其连接到其他html
- 创建元素更好还是只在html上准备好它们
- 挂钩文档.使用函数原型创建元素
- Javascript动态创建元素和onclick函数
- 从任何jquery选择器字符串创建元素的最有效方法
- 动态创建元素和添加onclick事件不起作用
- 在javascript中创建元素时,CSS转换规则固有地被覆盖
- 如何在特定的HTML标记下用JavaScript创建元素
- 如何根据我正在读取的节点的元素名称创建元素
- 使用Jquery在元素中创建元素
- 使用JavaScript创建元素并使用它
- 将托管 Bean 与 javascript 结合使用来创建元素