为什么我的otest换成node就没用??我在id上加了node了啊

来源:9-13 插入节点insertBefore()

帅渣渣

2016-05-11 19:34

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>无标题文档</title>

</head>

<body>


<ul id="test"><li>JavaScript</li><li id= "node">HTML</li></ul> 

 

<script type="text/javascript">


  var otest = document.getElementById("test");  

  var node=document.getElementById("node");

  var newnode=document.createElement("li");

  newnode.innerHTML="PHP";

  otest.insertBefore(newnode,node);

</script> 


</body>

</html>


写回答 关注

3回答

  • 慕粉3317411
    2016-05-12 10:04:38
    已采纳

    insertBefore() 方法是在父节点的已有的子节点前插入一个新的子节点。otest为父节点,而node为子节点,所以将otest换成node就不行。

  • Cassie_yu
    2016-06-13 21:58:56

    关于最佳回答 insertBefore() 方法是在父节点的已有的子节点前插入一个新的子节点 这句话是没问题的,但是指的是在使用的时候,此方法的对象必须是含有子节点的父节点,也就是 otest.insertBefore() 前面的otest是父节点。

    而方法内面的两个节点仅代表 创建的新节点 以及 插入的位置(仅仅只为了指定一个位置),所以提问者更改后的代码应该是没有问题的。

  • 从此浪迹天涯了无牵挂
    2016-05-17 05:49:20

    我试着可以啊

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468783 学习 · 22528 问题

查看课程

相似问题