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)。