如何有效地使用getElementsByTagName

时间:2017-03-08 16:05:47

标签: javascript html

我目前正在使用此书签来隐藏网页的几个随机行:

(function () {
    document.getElementsByTagName("tr")[1].style.display = "none";
    document.getElementsByTagName("tr")[3].style.display = "none";
    document.getElementsByTagName("tr")[6].style.display = "none";
})();

是否有必要重复

document.getElementsByTagName("tr")[].style.display = "none"

一次又一次还是有什么方法可以简化它? 我的意思是将所有这些合并到一个简单的命令,如

document.getElementsByTagName("tr")[1,3,6].style.display = "none".

有可能吗?

请给我一个上面书签的编码示例?

4 个答案:

答案 0 :(得分:1)

当然,您可以将for( $i = 0; $i <= substr_count($p_arquivo, "EQD")-1; $i++ ) { 存储在变量中:

tr

然后你可以遍历var trs = document.getElementsByTagName("tr"); s 1到3。

tr

或者,您可以使用for(var i = 1; i <= 3; i++) { trs[i].style.display = "none"; } 选择一系列Array.prototype.slice s。

tr

答案 1 :(得分:0)

试试这个

var rows= document.getElementsByTagName("tr")
Array.from(rows).forEach(v => v.style.display = 'none');

答案 2 :(得分:-1)

当然有:

(function(){
    [].slice.call(document.getElementsByTagName("tr")).forEach(
        (element) => element.style.display = "none"
    );
})();

解释:[].slice.call()将getElementsByTagName返回的HTMLColletion对象转换为可迭代数组。然后你可以使用forEach循环遍历结果并做任何你想做的事情。

JSFiddle:https://jsfiddle.net/ozraLcx1/

答案 3 :(得分:-2)

使用for循环或foreach循环。

var temp = document.getElementsByTagName("tr");
for(var i = 0; i < temp.length; i++){
    temp[i].style.display = "none";
}

var temp = document.getElementsByTagName("tr");
temp.forEach(element => element.style.display = "none");

可以加入

document.getElementsByTagName("tr").forEach(element => element.style.display = "none");