动态创建标记(javascript)

传统方法
  • 使用document.write
    它最大的缺点就是违背了"行为应该与表现分离"的原则。
 <html>
<head>
  <script>
  function insert(){
     document.write("<p>This is inserted</p>");
   }
  </script>
</head>
<body>
<button onclick="insert()">显示</button>

</body>
</html>
  • 使用innerHTML

利用这个方法无法确认是插入还是替换一段HTML内容。如果是插入一大段的HTML代码的话使用这个方法比较好。但它不会返回任何对刚插入的内容的引用

window.onload=function(){
  var testdiv=document.getElementById("testdiv");
  //alert(testdiv.innerHTML); //读取标记
  testdiv.innerHTML="<p>I inserted  <em>this</em> content.</p>";  //写入标记
}
  • 使用DOM

DOM是一条双向车道。不仅可以获取文档的内容,还可以更新文档的内容。

createElement、appendChild、createTextNode的使用
window.onload=function(){
    var para=document.createElement("p");                   //创建一个<p></p>的元素节点(document.createElement:创建一个元素节点)
    var div=document.getElementById("testdiv");             //获取div对象
    div.appendChild(para);                                  //在div下添加元素节点       (parent.appendChild:添加节点)
    
    var text=document.createTextNode("Hello JavaScript");   //创建一个文本节点           (document.createTextNode:创建一个文本节点)
    para.appendChild(text);                                 //将文本节点添加到元素节点<p>下
     
    //div.getElementsByTagName("p")[0].childNodes[0].nodeValue="dd";  //不是用此方法是因为刚创建的元素节点是不包含文本节点的因此不能改变
    
}


    
}



insertBefore()

将标记插入到某个节点的前面,在插入前必须告诉他:

  • 新元素:你想插入的元素(newElement)。
  • 目标元素:你想把这个新元素插入到哪个元素(targetElement)之前。
  • 父元素:目标元素的父元素(parentElement)
调用语法:parentElement.insertBefore(newElemetn,targeElement);
insertAfter()

在javacript中并没有直接提供此函数(在节点的后面插入元素),但可以自己写一个.

function insertAfter(newElement,targetElement){  //传入两个参数,一个是新元素,另一个是目标元素。
    var parent=targetElement.parentNode;  //获得目标元素的父节点
    if(parent.lastChild==targetElement){ //判断目标元素是不是父节点的最后一个节点元素
        parent.appendChild(newElement);  //如果是直接在后面插入
    }else{
        parent.insertBefore(newElement,targetElement.nextSibling); //如果不是则在目标元素的下个元素前面插入节点
    }
    
}


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • JS也可以用来改变网页的结构和内容 一些传统方法 document.write document对象的write(...
    fumier阅读 2,761评论 0 0
  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 7,770评论 0 8
  • 前言 归根结底,代码都是思想和概念的体现。没人能把一种程序设计语言的所有语法和关键字都记住,可以查阅参考书来解决。...
    朱细细阅读 8,159评论 4 14
  • Element 类型 除了 Document 类型之外,Element 类型就要算是 Web 编程中最常用的类型了...
    劼哥stone阅读 3,856评论 0 3
  • 通过一个非常爱学习的同事知道简书,果断下载注册了。 不是很有学问,但是还爱学习。 希望通过这个平台学到不同的知识,...
    ming0210阅读 1,396评论 0 0

友情链接更多精彩内容