隐藏<;th>;使用JavaScript的元素

隐藏<;th>;使用JavaScript的元素,javascript,html,Javascript,Html,我试图用JavaScript隐藏一些表元素 对于元素,它可以: function hide(){ var x=document.getElementsByTagName('td'); for(var i in x){ x[i].style.visibility='hidden'; } } 但是当我对元素做同样的操作时,它就不正常了 function hide(){ var x=document.getElementsB

我试图用JavaScript隐藏一些表元素
对于
元素,它可以:

function hide(){  
    var x=document.getElementsByTagName('td');  
    for(var i in x){  
        x[i].style.visibility='hidden';  
    }  
}  
但是当我对
元素做同样的操作时,它就不正常了

function hide(){  
    var x=document.getElementsByTagName('th');  
    for(var i in x){  
        x[i].style.visibility='hidden';  
    }  
}  
有人告诉我为什么?我该怎么办

这是我的HTML

<table>  
    <thead>  
        <tr>  
            <th>header 1</th>  
            <th>header 2</th>  
            <th>header 3</th>  
        </tr>  
    </thead>  
    <tbody>  
        <tr>  
            <td>content 1.1</td>  
            <td>content 1.2</td>  
            <td>content 1.3</td>  
        </tr>  
        <tr>  
            <td>content 2.1</td>  
            <td>content 2.2</td>  
            <td>content 2.3</td>  
        </tr>  
    </tbody>  
该功能无法正常工作,只是隐藏了元素,仍然可见

但是当我把它分成两个函数时,它工作正常

我正在使用Chrome。
为什么会这样

根据巴尔马

$(document).ready(function(){
    var x=document.getElementsByTagName('th');  
    for(var i = 0; i < x.length; i++){  
         x[i].style.display ='none';  
    }   
});
$(文档).ready(函数(){
var x=document.getElementsByTagName('th');
对于(var i=0;i
演示:

根据Barmar

$(document).ready(function(){
    var x=document.getElementsByTagName('th');  
    for(var i = 0; i < x.length; i++){  
         x[i].style.display ='none';  
    }   
});
$(文档).ready(函数(){
var x=document.getElementsByTagName('th');
对于(var i=0;i
演示:


不要在中使用
来迭代
节点列表。NodeList对象的属性不是列表中的元素。当
i
“length”
时,它会收到一个错误,因为
x[“length”]
没有
style
属性

function hide(){  
    var x=document.getElementsByTagName('th');  
    for(var i = 0; i < x.length; i++){  
        x[i].style.visibility='hidden';  
    }  
}
函数隐藏(){
var x=document.getElementsByTagName('th');
对于(var i=0;i

不要在中使用
来迭代
节点列表。NodeList对象的属性不是列表中的元素。当
i
“length”
时,它会收到一个错误,因为
x[“length”]
没有
style
属性

function hide(){  
    var x=document.getElementsByTagName('th');  
    for(var i = 0; i < x.length; i++){  
        x[i].style.visibility='hidden';  
    }  
}
函数隐藏(){
var x=document.getElementsByTagName('th');
对于(var i=0;i

看起来不错。请发布您的html标记。您也可以共享相关的html代码吗?另外,您如何调用
隐藏
功能?至少在Chrome中存在此问题。由于
在某一点上会包含
长度
,因此在循环结束时,javascript会抛出一个错误。将HTML放入@Pilot的小提琴中,它工作正常:@anurupr I Put onclick in two按钮。函数名看起来不错。请发布您的html标记。您也可以共享相关的html代码吗?另外,您如何调用
隐藏
功能?至少在Chrome中存在此问题。由于
在某一点上会包含
长度
,因此在循环结束时,javascript会抛出一个错误。将HTML放入@Pilot的小提琴中,它工作正常:@anurupr I Put onclick in two按钮。函数名就是一个例子。