javascript - JS getElementsByTagName报错,求大神帮看看..
阿神
阿神 2017-04-10 17:13:29
[JavaScript讨论组]

下面是我写的代码,总是提示我

Uncaught TypeError: oul1.getElementsByTagName is not a function

求大神帮看看我是哪里用错了,应该怎么解决这个问题呀,谢谢哈;

<!doctype html>
<html>

<head>
  <meta charset="utf-8" />
  <tilte></tilte>
  <script>
    window.onload = function() {
      var oinpu = document.getElementById('odin');
      var op1 = document.getElementById('op_1');
      var oul1 = op1.getElementsByTagName('ul');
      oinpu.onclick = function() {
        var oli1 = document.createElement('li');
        var oli2 = oul1.getElementsByTagName('li');//这句话总是报错,
        //op1.appendChild(oli1);
        if (oli2.length > 0) {
          oul1.insertBefore(oli1, oli2[0]);
        } else {
          op1.appendChild(oli1);
        }
      }
    }

  </script>
</head>

<body>
  <input type="button" value="添加" id="odin" />
  <p id="op_1">
    <ul></ul>
  </p>
</body>

</html>
阿神
阿神

闭关修行中......

全部回复(4)
天蓬老师

oul1[0].getElementsByTagName('li');getElementsByTagName返回的是数组(NodeList)。

大家讲道理

op1是元素节点对象数组, getElementsByTagName是作用在文档节点对象上的。

PHP中文网

js没有链式操作,它的库jq有,op1.getElementsByTagName('ul')这句明显的想搞链式操作,当然不对,你把op1换为document试试

PHP中文网

跟你采纳的答案一样,因为返回的是数组,把第12行改成;

var oul1 = op1.getElementsByTagName('ul')[0];

就可以了,另外遇到这个问题,把你获取的变量打印出来看,很快就可以排查到错误。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号