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

为什么什么都不输出,代码如下,帮忙看下。想法比第一赞的同学代码麻烦点

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>
<body>
<ul id="con">
<li id="lesson1">javascript
  <ul>
      <li id="tcon"> 基础语法</li>
      <li>流程控制语句</li>
      <li>函数</li>
      <li>事件</li>
      <li>DOM</li>
  </ul>
</li>
<li id="lesson2">das</li>
<li id="lesson3">dadf</li>
<li id="lesson4">HTML/CSS
  <ul>
    <li>文字</li>
    <li>段落</li>
    <li>表单</li>
    <li>表格</li>  
  </ul>
</li></ul>  
<script  type="text/javascript">    
   var mylist = document.getElementById("tcon");
   var plist = mylist.parentNode.parentNode.nodeName;
   for(var i= 0;i<plist.length; i++){
   if(plist[i].getAttribute("id")==lesson4){
      document.write(plist[i].nodeValue);
       }
       
       }
    
</script>

</body>
</html>

正在回答

3 回答

题主弄错了概念

getAttribute()和setAttribute()是获取、设置元素节点的属性的值。

节点有四种:1.元素节点、2. 属性节点、3. 文本节点、4. 文档节点

具体看 9.7节点属性。

var plist = mylist.parentNode.parentNode.nodeName获得的是<li id="lesson1">的节点名,如果用document.write(plist)输出的话应该是LI

我的做法是这样的:

var n = mylist.parentNode.parentNode.parentNode.childNodes;

//获取最顶层父节点的所有子节点

    document.write(n.length+"<br>");

   for(var i=0; i<n.length; ++i){

    // 先判断出li的元素节点再判断获取元素节点ID

    if( n[i].nodeName == "LI" && n[i].getAttribute("id") == "lesson4"){

        document.write(n[i].childNodes[0].nodeValue+"<br>");

    }

 }

望采纳!

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

aiwei笑 提问者

非常感谢!
2015-11-06 回复 有任何疑惑可以回复我~
#2

慕斯卡9402741

document.write(toLowerCase(plist)+"<br>"); 想输出一个转换成小写的li标记,结果一直报错。
2016-01-13 回复 有任何疑惑可以回复我~
#3

西风潇潇

你这样做的结果为:HTML/CSS,并不会完全输出"HTML/CSS"课程内容。 相当于获取最后一个节点(第8)个节点的第一个子节点(文本节点)的节点属性(文本节点nodeValue为文本自身)。
2016-01-20 回复 有任何疑惑可以回复我~

什么都不输出

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

什么不输出

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

举报

0/150
提交
取消

为什么什么都不输出,代码如下,帮忙看下。想法比第一赞的同学代码麻烦点

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