为了账号安全,请及时绑定邮箱和手机立即绑定

我这样写为什么不对?node是指定此节点前插入节点,我把node设置为最后一个节点前为什么不对。

<!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 node = document.getElementById("otest.lastChild");

  var newnode = document.creatElement("li")

  newnode.innerHTML="PHP"

  otest.insertBefore(newnode,node);

  

</script> 


</body>

</html>


正在回答

4 回答

var node = document.getElementById("otest.lastChild")

这句话有问题,你的ById找不到这个子节点,id是唯一的,并不能拿来跟标签的子节点用,得设过id=“xxx”;才能用xxx,

修改代码:

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

  var newnode = document.creatElement("li")

  newnode.innerHTML="PHP"

  otest.insertBefore(newnode,test.lastChild);

这个地方的test.lastChild为什么可以用,是因为insertBefore()这个方法的第二个属性是插入位置,这个位置可以是节点也可以是id,也可以是标签



0 回复 有任何疑惑可以回复我~

你这句执行不了啊!

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

document.getElementById()是用括号里的字符串比较HTML文档中的所有id值,返回相应节点。

而id="otest.lastChild"的节点是不存在的。

0 回复 有任何疑惑可以回复我~

最简洁的答案(通俗易通-->点赞):

<!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 html=otest.childNodes[1];

  var li=document.createElement('li');

  li.innerHTML='php';

  otest.insertBefore(li,html);

</script> 


</body>

</html>


1 回复 有任何疑惑可以回复我~

稍微改一下就OK啦:

<!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 node = otest.lastChild;  //方法1

//   var node = otest.childNodes[1]; 方法2

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

  newnode.innerHTML = "php";

  otest.insertBefore(newnode,node);

</script> 


</body>

</html>


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我这样写为什么不对?node是指定此节点前插入节点,我把node设置为最后一个节点前为什么不对。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信