首页 > 技术文章 > document.write()重写问题

victor5230 2016-08-22 15:18 原文

  document.write(); 可用于重写给某个元素追加内容;

  当document.write(); 用于JS文件中,会重写整个页面,解决这个问题有多种方法。

  重写原因:当onload的时候执行 ,文档流已经关闭 ,write会重新打开文档流,所以覆盖了。

  1.jquery追加。这是最简单的一种方法,直接用jquery的append等方法给元素追加内容。

  一、在元素内部/外部追加元素
    append,prepend:添加到子元素
    before,after:作为兄弟元素添加

  html: 
<div id="content"> 
<p>在我的后面追加一条新闻</p> 
</div> 

Javascript: 
<script type="text/javascript"> 
jQuery(function(){ 
//在元素内部追加内容 
$("#content").append("<p>姚明退役了...</p>"); 
}) 
</script> 

 

在#content里面添加元素,这是把<p>姚明退役了...</p>作为子元素添加到#content,如果想在元素外部追加元素,需要用到after,这样的话就可以把<p>姚明退役了...</p>作为兄弟元素追加到#content后面
复制代码 代码如下:

<script type="text/javascript"> 
jQuery(function(){ 
//将span添加到追加到content1的后面 
$("#content").after("<p>姚明退役了...</p>"); 
}) 
</script> 

 



  二、在元素的不同位置追加内容

html 

<div id="content1" style="border:1px solid red"> 
<p>窗前明月光</p> 
</div> 
<span>疑是地上霜</span> 

javascript 

<script type="text/javascript"> 
jQuery(function(){ 
//将span添加到追加到content1的后面 
$("span").appendTo("#content1"); 
}) 
</script> 

 



三、在元素的开始位置追加内容

html 

<div> 
<div id="content"> 
<p>在我的后面追加一条新闻</p> 
</div> 

javascript 

<script type="text/javascript"> 
jQuery(function(){ 
//在元素的开始位置追加内容 
$("#content").prepend("<p>头部</p>"); 
}) 
</script> 

 



四、在不同元素的开始位置追加内容

html 

<div id="content"> 
<p>在我的后面追加一条新闻</p> 
</div> 
<span>疑是地上霜</span> 

javascript 

<script type="text/javascript"> 
jQuery(function(){ 
//在不同元素的开始位置追加内容 
$("span").prependTo("#content"); 
}) 
</script> 

 

在#content里面添加元素,这是把<span>疑是地上霜</span>作为子元素添加到#content开始地方,如果想在元素外部添加开始元素,需要用到before,这样的话就可以把<span>疑是地上霜</span>作为兄弟元素追加到#content开始了
复制代码 代码如下:

<script type="text/javascript"> 
jQuery(function(){ 
//在不同元素的开始位置追加内容 
$("span").before("#content"); 
}) 
</script> 

 

五、用指定结构的元素包含元素
Warp(html)
在指定的html中指定html元素,但指定的元素中不可含有兄弟元素,否则不能正常的运行,并且不含有一般文本字符串,下面的代码用div标签包含p标签

html 

<form id="form1" runat="server"> 
<span>将我包含在div中</span> 
</form> 

javascript 

<script type="text/javascript"> 
jQuery(function(){ 
$("span").wrap("<b></b>"); 
}) 
</script> 

 



六、用指定的元素包含多个html元素
warpAll(html)

html 

<form id="form1" runat="server"> 
<p>p内容</p> 
<p>p内容</p> 
<p>p内容</p> 
<p>p内容</p> 
<p>p内容</p> 
</form> 

javascript 

<script type="text/javascript"> 
jQuery(function(){ 
$("p").wrapAll("<div style='border:1px solid red'><p></p></div>"); 
}) 
</script> 

 

七、用指定的标签包含子元素
wrapInner(html)
与warp方法一样,在html中指定html元素,例如:
用b标签包含p标签中文字的代码如下:

html代码 
<p>将p标签的文字用b标签包含起来</p> 
<p>也将p标签的文字用b标签包含起来</p> 

javascript 
<script type="text/javascript"> 
jQuery(function(){ 
$("p").wrapInner("<b></b>"); 
}) 
</script>

2.在jquery中使用:document.getElementById("emb").innerHTML=a;

 


链接地址:http://www.jb51.net/article/35845.htm

推荐阅读