动态插入HTML或文本

原创 2008年10月01日 12:02:00
动态插入HTML或文本
 

<script language="javascript">
//document.body.insertAdjacentHTML("beforeBegin","<input name='tt' type='text' value='beforeBegin' />");
document.body.insertAdjacentHTML("afterBegin","<input name='tt' type='text' value='afterBegin' />");
document.body.insertAdjacentHTML("beforeEnd","<input name='tt' type='text' value='beforeEnd' />");
//document.body.insertAdjacentHTML("afterEnd","<input name='tt' type='text' value='afterEnd' />");
</script>

实现Web页面内容动态改变的dhtml操作
IE的DHTML对象提供了四个可读写的属性来动态操作页面元素的内容:innerText, outerText, innerHTML, outerHTML.

需注意两点:

1. 其中innerText,outerText属性的值是作为普通文本呈现的,即使它含有HTML标签也如实反应出来;而innerHTML, outerHTML呈现的是经HTML引擎解析后文本,它可以反应属性中HTML标签的表现效果。

2. 对对象的outerText,outerHTML属性赋值(即写操作)会删除该对象。

以上四个属性的赋值操作只是替换原对象的文本内容,想要在页面中指定元素相关位置新增文本内容,需采用insertAdjacentHTML和insertAdjacentText方法。形式如下:

object.insertAdjacentText(sWhere, sText)
object.insertAdjacentHTML(sWhere, sText)
其中 sWhere 表示插入的文本相对于html标签的位置,有如下四个预设值:

beforeBegin,afterBegin,beforeEnd,afterEnd

使用中需注意如下几点:

1.这两种方法必须在整个文档装载完成之后才能使用,否则将出错。

2. InsertAdjacentText只能插入普通文本,InsertAdjacentHTML插入html格式的文本

3. 用InsertAdjacentHTML插入脚本,必须在script元素中使用defer属性,否则脚本执行将出现运行期错误

4.InsertAdjacentHTML插入html元素后,all以及其他可能的元素集合将自动更新以反应动态变化。如页面后续元素的sourceIndex 属性将改变。

5.当赋予InsertHTML/outerHTML属性无效的HTML标签,该方法可能出现运行时错。如以下代码将出错:

<BODY>

<p id=pdiv></p>

<SCRIPT LANGUAGE="JavaScript">

pdiv.innerHTML = "<p>hello</p>"

</SCRIPT>

</BODY>

此外页面内容动态操作还需要注意如下一些细节:

1.只有文档BODY内显示的内容能被以上属性和方法动态改变,BODY对象的内容能被动态操作,但BODY对象本身无法被替换。

2.以上属性和方式不能操作空标签(没有内容的html标签),如input,img。

3.对于table对象而言,只有td(innerHTML/innerText)和table(outerHMTL/outerText)对象可以用某些属性来替换或插入内容;而其他table对象,如tr、tbody不能用这些属性来改变内容。

动态插入HTML或文本

//document.body.insertAdjacentHTML("beforeBegin","");document.body.insertAdjacentHTML("afterBegin","...
  • qi_jianzhou
  • qi_jianzhou
  • 2006年01月11日 09:33
  • 1358

html 动态显示元素文本

dynamic show function highlight(obj){ var selected = docum...
  • mlzhu007
  • mlzhu007
  • 2012年08月10日 11:15
  • 6452

jQuery在HTML中动态插入节点的常用方法

方法 描述 示例 append() 向每个匹配的元素内部追加内容 HTML代码:我想说: jQuery代码: $("p").append("你好"); 结果...
  • lyj1101066558
  • lyj1101066558
  • 2016年05月09日 16:17
  • 916

用JS动态显示文本

index.html: 页面(HTML5) ...
  • major_zhang
  • major_zhang
  • 2016年12月03日 02:38
  • 1743

动态插入HTML的方法

script>...    function testInsert(sWhere, obj) ...{        var insertStr = "";        // var obj = d...
  • wangpingpaul
  • wangpingpaul
  • 2006年12月16日 11:33
  • 698

javascript动态插入html元素

主要有是两种方案:1.使用DOM //使用createElement创建元素 var dialog = document.createElement('div'); var im...
  • longshengguoji
  • longshengguoji
  • 2017年01月05日 19:48
  • 1253

动态添加一个HTML标记

一 介绍 动态添加一个HTML标记可以使用createElement()方法来实现。 CreateElement()方法可以根据一个指定的类型来创建一个HTML标记。 语法: sElement...
  • chengqiuming
  • chengqiuming
  • 2017年04月12日 10:42
  • 331

Angular动态绑定HTML文本

AngularJS中输出变量使用{{}}花括号或者ng-bind命令,在进行数据绑定时默认是以文本的形式输出,如果变量中有HTML标签的话,默认是不转义的,直接以标签的形式显示,这样防止了XSS脚本注...
  • oucqsy
  • oucqsy
  • 2017年07月27日 11:33
  • 1043

用js动态插入HTML标签时的一点注意的地方

这两天在学习js,发现一个问题,我在用appendChild动态插入一个input type=text标签时,发现不能设置这个文本框所响应的事件,代码是这样写的:            var oTe...
  • wangpingpaul
  • wangpingpaul
  • 2007年04月22日 11:16
  • 6068

在Flash中利用Actionscript在动态文本框中加载HTML格式的文本

在Flash中可以利用Actionscript在动态文本框中加载HTML格式的文本,下面我们介绍具体方法。这里就不给大家具体讲解HTML标记了,如果您不熟悉可以查看天极设计在线的网页设计基础知识。  ...
  • tgw2000
  • tgw2000
  • 2015年01月20日 16:53
  • 720
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:动态插入HTML或文本
举报原因:
原因补充:

(最多只允许输入30个字)