原生js在IE7下 向dom添加节点的一个bug, (本例为添加hidden input)
需求是要用js向dom结构增加1个hidden用来存放要post到服务器的数据
var aspnetForm = document.getElementById("aspnetForm"),
//这就是新增的hidden <input type="hidden" name="test" value="name=jason;age=27;"/>
hidden = document.createElement("input");
hidden.name = "test";
hidden.type="hidden";
hidden.value = "name=jason;age=27;";
aspnetForm.appendChild(hidden);
这段代码在IE7下无效.
一开始我原以为是下面3句代码IE7不支持, 需要用setAttribute替代 hidden.setAttribute("name", "test");
hidden.name = "test";
hidden.type="hidden";
hidden.value = "name=jason;age=27;";
但是尝试后无效,后来老大提示说这是一个IE7的bug.
解决方法是把hidden 的html拼写到string里面, 然后在hidden的外部套上一层div
<div>
<input type="hidden" name="test" value="name=jason;age=27;"/>
</div> // 把input套在div内,再把input的outerHTML设置为div的innerHTML
最终代码如下:
var forn = $("#aspnetForm")[0],
container = document.createElement("div"),
hiddenInput = '<input type="hidden" name="test",value="name=jason;age=27"';
// 将hidden的html string设置为container的innerHTML,然后将div套子添加到page上
container.style.display = "none";
container.innerHTML = hiddenInput;
form[0].appendChild(container)
原生js在IE7下 向dom添加节点的一个bug, (本例为添加hidden input)的更多相关文章
- 原生JS操作iframe里的dom
转:http://www.css88.com/archives/2343 一.父级窗口操作iframe里的dom JS操作iframe里的dom可是使用contentWindow属性,contentW ...
- 原生JS实现几个常用DOM操作API
原生实现jQuery的sibling方法 <body> <span>我是span标签</span> <div>我是一个div</div> & ...
- 将原生JS和jquery里面的DOM操作进行了一下整理
创建元素节点 1.原生: document.createElement("div") 2.jquery: $("<div></div>" ...
- 原生JS通过类名(className)获取dom元素
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- IE7下浮动元素的内容自动换行的BUG解决方法
有时候我们想写个浮动得到这样的效果: 代码: <!doctype html> <html> <head> <meta charset="utf-8& ...
- 原生js标识当前导航位置(给当前导航一个className=active)
导航html结构为: <div class="header2-nav"> <a href="index.html">首页</a&g ...
- 原生JS和jQuery操作DOM的区别小结
一.Js原生对象和jQuery实例对象的相互转化: (1).原生JS对象转JQ对象: $(DOM对象); (2). JQ对象转原生JS对象: $(DOM对象).get(index); //注意区分eq ...
- 原生js学习 选择dom
连bootstrap5 都抛弃jquery了,重新使用原生js来写,所以最近在学习原生js. 一.选择dom元素: id let sure=document.getElementById('sure' ...
- AJAX请求和跨域请求详解(原生JS、Jquery)
一.概述 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. AJAX = 异步 JavaScript 和 XML,是一种用于创建快速动态网页的技术.通过在后台与服务器进行少量数 ...
随机推荐
- 常用Linux运维命令
1.查看TCP连接状态 netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn netstat -n | awk '/^tcp/ {++S[$NF]} ...
- linux文件 编辑常用 inux手把手vi ---针对文件操作
命令语法 说明 使用频率(1:常用;2一般:3:偶尔) 1.VI编辑器的启动与退出 VI编辑器的启动与退出 vi file1 新建一个文本文件名为file1 :q 退出,如果对缓存去进行过修改,则提 ...
- java_jdbc_可滚动结果集与分页
public static void create2(int i) { Connection conn = null; Statement st = null; ResultSet rs = null ...
- Socket异步通信学习二
接下来是服务器部分,采用异步模式,新建了一个AsynServer类,用于存放socket服务器代码,主要有4个方法: 有一个全局socket,下面四个方法中都用到. Socket socket = n ...
- ASP.NET 相同页面前后端之间传值
aspx页面前后端之间传值:前端的html或js获得后端的cs,后端的cs获得前端的js值. 一.前端获得后端的值 1.html元素 前端: <td><%=str%></ ...
- Java内存模型——可见性
/** * 可见性问题 * @author Snway * */public class Visibility { private static boolean stop; ...
- strstr,strchr,strtr 比较
strstr - 查找字符串的首次出现 查找 "Shanghai" 在字符串中的第一次出现,并返回字符串的剩余部分: echo strstr("I love Shangh ...
- 第二章 jQuery选择器
选择器是行为与文档内容之间的纽带,其目的是能轻松的找到文档中的元素. jQuery中的选择器继承了CSS的风格.利用jQuery选择器,可以非常便捷快速地找出特定的DOM元素,然后给它们添加相应的行为 ...
- 错误源:WebForms UnobtrusiveValidationMode requires a ScriptResourceMapping for 'jquery'. Please add a ScriptResourceMapping named jquery(case-sensitive).
Server Error in '/' Application. WebForms UnobtrusiveValidationMode requires a ScriptResourceMapping ...
- Mysql 创建联合索引注意事项
当一个表有多条索引可走时, Mysql 根据查询语句的成本来选择走哪条索引, 联合索引的话, 它往往计算的是第一个字段(最左边那个), 这样往往会走错索引. 如: 索引Index_1(Crea ...