Javascript 以正确的行元素为目标

Javascript 以正确的行元素为目标,javascript,for-loop,Javascript,For Loop,示例代码: 第一个按钮第二个按钮 第一个按钮 第一个按钮第二个按钮 第一个按钮 第一个按钮第二个按钮 函数someFunc(i){ //每行显示第一个按钮 第一个按钮[i].style.display=“none”//有效 //第二个按钮随机出现 第二个按钮[i].style.display=“none”//无法正常工作 } //someFunc(2)以第三行的“first_按钮”为目标,但 //最后一行的“第二个按钮”。我想把目标对准 //第三行的按钮,而不是每种类型的第三个按钮。 var

示例代码:

第一个按钮第二个按钮
第一个按钮
第一个按钮第二个按钮
第一个按钮
第一个按钮第二个按钮
函数someFunc(i){
//每行显示第一个按钮
第一个按钮[i].style.display=“none”//有效
//第二个按钮随机出现
第二个按钮[i].style.display=“none”//无法正常工作
}
//someFunc(2)以第三行的“first_按钮”为目标,但
//最后一行的“第二个按钮”。我想把目标对准
//第三行的按钮,而不是每种类型的第三个按钮。

var i
随每行递增。我想针对第I行的按钮,而不是每种类型的第I行按钮。最简单的方法是什么?

您可能正在使用一些
文档
方法来获取对按钮的引用。可能是
document.getElementsByClassName()
document.querySelectorAll()
。这些方法也适用于单个元素。因此,您可以获取对
元素的引用,并调用
row.getElementsByClassName()
以仅获取作为该行后代的元素。

以行索引为目标,而不是包含“按钮”的节点列表的索引。还要在其中进行检查,以确保第二个单元格存在:

var table = document.getElementById('mytable');

function someFunc(i) {
    var row = table.getElementsByTagName('tr')[i];
    var cells = row.getElementsByTagName('td');

    cells[0].style.display="none";
    if(typeof(cells[1]) != 'undefined'){
        cells[1].style.display="none";
    }
}

如何填充
第一个按钮
第二个按钮
变量?是否只有一个
第二个按钮
?@gilly3它们只是表格行上的html元素。如果您发布其余相关代码,会很有帮助。你没有给我们太多可以继续的东西。@oGeez不,可以有多个。看看和。使用内置集合更干净,并避免从嵌套表中选择行@谢谢,我会接受你的建议并使用这些收藏品。