这样为什么不行,哪错了

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

qq_小白_7

2015-07-04 10:10

<!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>HTML</li>

</ul> 

 

<script type="text/javascript">


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

  var x=otest.lastChild;

  var a=document.createElement("li")

  a.innerHTML="php";

  otest.insertBefore(a,x)

  

  

  

</script> 


</body>

</html>



写回答 关注

2回答

  • Perona
    2015-07-05 12:23:25
    已采纳

    不要用lastChild,获取不到你要的节点,建议用lastElementChild。

    参考代码

     var otest = document.getElementById("test");
     var x=otest.lastElementChild;
     var a=document.createElement("li");
     a.innerHTML="php";
     otest.insertBefore(a,x);

      


    Perona 回复sososi...

    浏览器的兼容性引起的。低版本的ie(ie6至ie8)支持lastChild。 IE9-10、Chrome、FireFox等支持 lastElementChild,建议用 lastElementChild。因为低版本的ie正在逐步淘汰。

    2015-11-14 20:11:13

    共 3 条回复 >

  • Perona
    2015-07-04 11:03:36

    你没错,代码运行正确,通过了呀~~

    qq_小白_...

    但是"php"没有插入到"HTML"之前,而是在最后面,已经定位最后子节点var x=otest.lastChild;然后otest.insertBefore(a,x),新设置的“li“,应该在”HTML“之前才对,为什么会在最后面

    2015-07-05 08:44:09

    共 1 条回复 >

JavaScript进阶篇

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

468190 学习 · 21891 问题

查看课程

相似问题