`
tailsherry
  • 浏览: 136202 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

诡异的innerHTML

阅读更多

今天在现在的项目中,涉及到这样一个案例,我要用innerHTML临时保存一个div中的内容,然后在某种条件满足时,再把这个innerHTML返回给这个div。

 

在这个div中,如果存在有edit的标签,当我重新将保存的内容返回的时候,用Firefox浏览时发现edit里面的内容空空如也!!!

 

同样的应用方式,另外一个div中的edit的内容却能完完整整的恢复,我诧异啊???

 

我尝试用IE打开,前后两个div都能正常工作,所有内容都能完璧归赵。

 

赶紧查资料,看代码,最后发现,两个div中的edit的创建方式是不一样的。前一个div是通过createElement创建edit并为之添加各种属性的,代码示意如下:

var edit = document.createElement("input");   
edit.id = name;   
edit.type = "text";   
edit.value = val;   
div.appendChild(edit);  
 

而后一个div则是通过直接加入HTML的方式加入的,示意如下:

var html = "<input type='text' id='" + name + "' value='" + val + "' />";   
div.innerHTML = html;   

 

慢慢的,问题的根源就豁然开朗!不同于M$ IE,在Mozilla Firefox下的innerHTML通过遍历元素的所有节点的tagName还有attrubutes来得到其innerHTML的,因此我们前一个例中的innerHTML得不到改动后的value值。

 

将前一段代码修改如下,则innerHTML在IE和FF下都会通行无阻:

var edit = document.createElement("input");   
edit.id = name;   
edit.setAttribute("type", "text");   
edit.setAttribute("value", name);   
div.appendChild(edit);  
分享到:
评论

相关推荐

    innerHtml(转)

    1. **innerHTML的基本用法**:如何通过`innerHTML`读取和修改元素的内容。例如,`element.innerHTML`返回元素的HTML,而`element.innerHTML = someHTMLString`则将元素内容替换为指定的HTML字符串。 2. **性能影响*...

    innerHTML的简单应用

    innerHTML的简单应用

    关于在innerHTML中JS不执行的问题

    首先,我们需要理解`innerHTML`的工作原理。当设置一个元素的`innerHTML`时,浏览器会做以下几件事: 1. 清空当前元素的所有子节点。 2. 解析新设置的HTML字符串,生成一个DOM树。 3. 将新的DOM树插入到原始元素的...

    innerHTML的使用

    innerHTML的使用document.getElementById("id").innerHTML = "contenttext";

    innerHTML和innerText的区别

    innerHTML 属性 innerHTML 属性用于获取 HTML 元素中的所有内容,包括 HTML 标签。例如,在上面的代码中,test.innerHTML 的值就是“&lt;span style="color:red"&gt;test1&lt;/span&gt; test2”,包括 HTML 标签。 innerHTML ...

    解决ajax返回innerHTML中javascript不能运行问题

    解决 Ajax 返回 innerHTML 中 JavaScript 不能运行问题 在实际应用中,我们经常会遇到使用 Ajax 返回某一个网页的内容到模板页面的某一个 `&lt;div&gt;` 标签中显示的操作。如果返回的值仅仅是文本类数据,不会影响模板...

    js中innerHTML与innerText的用法与区别

    ### JavaScript中的innerHTML与innerText的用法与区别 在前端开发中,经常需要用到JavaScript来操作DOM元素,其中`innerHTML`和`innerText`是非常重要的属性,它们分别用于获取或设置元素内部的HTML内容和纯文本...

    利用innerHTML实现隐显效果-两种实现方法

    本文将探讨如何利用innerHTML实现页面元素的隐藏与显示效果,同时提供两种不同的实现方法。 首先,我们需要理解innerHTML的工作原理。innerHTML允许我们获取或设置一个元素的所有子节点,包括文本、HTML标签等。当...

    react-Innerself使用innerHTML将ReactRedux转换成50行代码

    标题中的“react-Innerself使用innerHTML将ReactRedux转换成50行代码”表明这是一个关于简化React和Redux集成的项目,它使用了一种叫做Innerself的技术。Innerself是一种轻量级的解决方案,通过innerHTML属性来实现...

    通过改变innerHTML的内容,动态增加选择项

    本文将深入探讨如何通过改变`innerHTML`的内容来动态增加选择项,以及在实际开发中的应用。 首先,我们要理解`innerHTML`的工作原理。`innerHTML`可以获取或设置一个元素的所有HTML内容。当我们设置`innerHTML`时,...

    innerHTML-outerHTML-innerTEXT.txt

    根据提供的文件信息,我们可以深入探讨三个重要的DOM属性:`innerHTML`、`innerText`以及`outerHTML`。这些属性在Web开发中非常关键,用于获取或设置元素内部的内容。接下来将详细解析这些属性的功能、用途及差异。 ...

    超全面javaweb第4天- 08 innerHTML属性

    超全面javaweb第4天-_08_innerHTML属性

    python的xpath获取div标签内html内容,实现innerhtml功能的方法

    python的xpath没有获取div标签内html内容的功能,也就是获取div或a标签中的innerhtml,写了个小程序实现一下: 源代码 [webadmin@centos7 csdnd4q] #162&gt; vim /mywork/python/csdnd4q/z040.py #去掉最外层标签,...

    前端教程:48 日期对象 定时器和innerhtml

    千锋Web前端教程_48_日期对象_定时器和innerhtml

    简单日历和innerHTML使用

    简单日历和innerHTML使用 javascript的简单应用实例 可以自定义Css

    IE6/7/8中使用innerHTML清空元素,其子元素也被清空

    本文将深入探讨一个特定的问题,即在Internet Explorer 6、7和8(以下简称IE6/7/8)浏览器中使用`innerHTML`属性清空元素时,其子元素也会被一并清空的特性。这个现象在其他现代浏览器中并不常见,因此了解这一问题...

    html innerHTML outerHTML innerText outerText等的区别及实例汇总

    html js innerHTML outerHTML innerText outerText 等的区别及实例汇总

    innerHtml用法精解

    ### innerHtml用法精解 #### 一、InnerHtml简介及基本用法 `innerHTML`是HTML DOM(Document Object Model)的一个属性,用于获取或设置某个元素内的HTML内容。使用`innerHTML`,开发者可以直接操作HTML内容,从而...

    innerHTML_outerHTML.rar_javascript

    `innerHTML` 属性: `innerHTML` 用于获取或设置一个元素的HTML内容,包括开始标签、结束标签以及它们之间的所有内容。当你想要读取元素内HTML代码或者动态地修改元素内部的HTML结构时,`innerHTML` 就非常有用。...

    innerHTML、outerHTML、innerText、outerText的用法与区别

    特别需要注意的是,innerText只适用于IE浏览器,而innerHTML则是W3C标准属性,因此,在实际开发中,尽可能地使用innerHTML,而少用innerText。如果要输出不含HTML标签的内容,可以使用innerHTML取得包含HTML标签的...

Global site tag (gtag.js) - Google Analytics