Javascript 以表行中的类为目标

Javascript 以表行中的类为目标,javascript,html-table,Javascript,Html Table,守则: var table = document.getElementById('some-table'); var row = table.rows; alert(row.length); // Returns number of rows // Function to hide class on specific row when some action is performed function someFunc(i) { var elementToTarget = row[i

守则:

var table = document.getElementById('some-table');
var row = table.rows;

alert(row.length); // Returns number of rows

// Function to hide class on specific row when some action is performed
function someFunc(i) {
    var elementToTarget = row[i].getElementsByClassName('some-class');
    var otherElementToTarget = row[i].getElementsByClassName('some-other-class');

    elementToTarget.style.display="none"; // Returns "elementToTarget.style
                                          //          is undefined"
    otherElementToTarget.style.display="inline"; // Returns undefined
}
基本表格布局:

<table>
    <tr>
        <td>
            <div class="some-class"></div>
            <div class="some-other-class"></div>
        </td>
    </tr>
</table>

我想做什么:当用户触发someFunc()时,它会隐藏某个类并显示另一个类。但它只隐藏了特定行的某个类。不是所有的行

我的问题:它告诉我该行中的元素未定义,我无法对它们执行任何操作。很可能是我对这些类的定位不当

希望我已经足够清楚了。如果你需要更多的澄清,让我知道


编辑:行中可能不总是有“其他类”。这就是为什么我不能只瞄准其中一个。我需要知道它们的行。

我想让您参考GetElementsByCassName函数的API

另外,请注意名称-Element*s*。它返回一个列表。你的函数应该相应地处理它。例如:

var elementToTarget = row[i].getElementsByClassName('some-class')[0];
var otherElementToTarget = row[i].getElementsByClassName('some-other-class')[0];

查看此提琴:

调用的
someFunc()
在哪里?使用什么参数?@RGraham在本例中,它将位于另一个类div上。类似于此,onclick=someFunc(0)(因为它是第一行)。但如果它在第53排,它将是someFunc(52)。