当前位置:  开发笔记 > 编程语言 > 正文

访问没有id的DOM元素

如何解决《访问没有id的DOM元素》经验,为你挑选了1个好方法。

我有一个大约500 div的页面如下.

  • 1
  • .....

    当调用测试函数时,它需要隐藏调用该函数的菜单(innermenu).

    我的问题是

      唯一标识div而不使用id

      如何仅隐藏特定的ul.

    Doug Neiner.. 7

    好的,首先是快速修复,虽然这不是在页面上使用JS的最佳方式:

    将呼叫更改为:

    然后,在测试中,使用此:

    function test(el){
       var uls = el.getElementsByTagName('ul');
       for(var i = 0; i < uls.length; i++){
          if(uls[i].className == 'innermenu'){
             uls[i].style.display = "none";
             break;
          }
       }
    }
    

    这将隐藏刚子uldiv被点击.

    一个更好的方法

    好的,答案更长.事后使用attachEvent和附加事件,addEventListener或者使用像jQuery这样的库来帮助你.这是原始解决方案:

    以这种方式设置HTML(否onclick):

    然后在HTML的最后放置这个:

    
    

    现在,您的HTML中没有JavaScript代码,您可以删除函数上的额外参数test.



    1> Doug Neiner..:

    好的,首先是快速修复,虽然这不是在页面上使用JS的最佳方式:

    将呼叫更改为:

    然后,在测试中,使用此:

    function test(el){
       var uls = el.getElementsByTagName('ul');
       for(var i = 0; i < uls.length; i++){
          if(uls[i].className == 'innermenu'){
             uls[i].style.display = "none";
             break;
          }
       }
    }
    

    这将隐藏刚子uldiv被点击.

    一个更好的方法

    好的,答案更长.事后使用attachEvent和附加事件,addEventListener或者使用像jQuery这样的库来帮助你.这是原始解决方案:

    以这种方式设置HTML(否onclick):

    然后在HTML的最后放置这个:

    
    

    现在,您的HTML中没有JavaScript代码,您可以删除函数上的额外参数test.

    推荐阅读
    重庆制造漫画社
    这个屌丝很懒,什么也没留下!
    DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
    Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有