首页 新闻 会员 周边

为什么在js编写的函数不用调用

0
[已解决问题] 解决于 2016-12-02 18:39

<script type="text/javascript">

function getElementsByClassName (className) {
  var all = document.getElementsByTagName('*');
  var elements = new Array();
  for (var e = 0; e < all.length; e++) {
    if (all[e].className == className) {
      elements[elements.length] = all[e];
    break;
    }
  }
  return elements;
}

window.onload = function(){
  var watch = document.getElementById('watchmore');
  var op = document.getElementsByTagName('p').getElementsByClassName('none');
  watch.onlick = function(){
    if(watch.innerHTML == "显示"){
      for(var i=0; i<op.length; i++){
        op[i].style.display = "block";
        watch.innerHTML = "隐藏";
        }
      }
    else {
      for(var i=0; i<op.length; i++){
        op[i].style.diaplay = "none";
        watch.innerHTMl = "查看更多";
        }
      }
    }
  }

</script>

 

 

为什么当我点击那个按钮的时候,提示document.getElementsByTagName(...).getElementsByClassName is not a function

 

 

Yhspehy的主页 Yhspehy | 菜鸟二级 | 园豆:232
提问于:2016-12-02 16:32
< >
分享
最佳答案
0

直接document.getElementsByClassName('none');这样用

奖励园豆:5
Artikel | 菜鸟二级 |园豆:387 | 2016-12-02 17:08
其他回答(2)
0

你这样的链式调用肯定有问题啊,document.getElementsByTagName('p') 得到的是一个DOM节点 NodeList,NodeList是没有 getElementsByClassName 方法的。

你用原生的JS方法的话应该是要去遍历 NodeList 

或者你可以用JQuery这样的框架,用选择器比较方便

嘻哈烧饼 | 园豆:173 (初学一级) | 2016-12-02 17:45
0

显然是不对的

旅程℡_Summer | 园豆:206 (菜鸟二级) | 2016-12-09 16:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册