JS:通过getElementsByClassName隐藏类的某些元素

时间:2018-12-07 11:59:50

标签: javascript hide getelementsbyclassname

我的代码:

<div  class="subManuSched'.$data2->ordernumber.'">
<div  class="subManuSched'.$data2->ordernumber.'">
<div  class="subManuSched'.$data2->ordernumber.'">
...onclick="hidediv('.$data2->ordernumber.')...


function hidediv(counter) {   
            document.getElementsByClassName('subManuSched'+counter)[0].style.visibility = 'hidden';
            alert('subManuSched'+counter);
    }

我想隐藏几个具有相同类名的div。提到代码后,我没有收到任何错误,但是什么也没有发生。 $ data2-> ordernumber是JS函数的给定参数,在此处名为“ counter”。最后的警报向我正确显示了该类的名称,并且已使用源代码对其进行了检查。 我在这里找到了很多对其他人有用的解决方案,但是它对我的代码永远无效。不知道为什么!

2 个答案:

答案 0 :(得分:0)

从JS动态更改它时,“可见性”存在类似问题,您应该尝试:

document.getElementsByClassName('subManuSched'+counter)[0].style.display = 'none';

答案 1 :(得分:0)

我已经使用在stackoverflow上找到的代码解决了问题:

$this->html .= '<tr><td class="toggler" data="'.$data2->AUNR.$data2->Nr.'">P</td>';


    var DELAY = 700, clicks = 0, timer = null;
    $(function(){
        $(".toggler").on("click", function(e){
            clicks++;  //count clicks
            if(clicks === 1) {
                timer = setTimeout(function() {
                    alert("Single Click");  //perform single-click action    
                    $('.submanusched'+$(this).attr('data')).toggle();
                    clicks = 0;             //after action performed, reset counter
                }, DELAY);
            } else {
                clearTimeout(timer);    //prevent single-click action
                alert("Double Click");  //perform double-click action
                $('.submanusched'+$(this).attr('data')).toggle();
                clicks = 0;             //after action performed, reset counter
            }
        })
        .on("dblclick", function(e){
            e.preventDefault();  //cancel system double-click event
        });
    });

,但仅处理“双击”中插入的行!我看到了这两个警报,但是在“单击”上发散的行从未被处理过! 你知道为什么吗?怎么了?

感谢您的帮助! 斯蒂芬