意外的javascript输出

意外的javascript输出,javascript,html,checkbox,Javascript,Html,Checkbox,我有很多动态生成的表行,它们通常采用以下形式 <td class="seatClass" > <label for="C" class="label-format" > <span > C0</span > </label > <input type = "checkbox" id = "C" name = "seats[US57][]" style = "display: inline-b

我有很多动态生成的表行,它们通常采用以下形式

<td class="seatClass" >
    <label for="C" class="label-format" >
        <span > C0</span >
    </label >
    <input type = "checkbox" id = "C" name = "seats[US57][]" style = "display: inline-block;" value = "C"  class="terminalCheckbox" onchange = "parentNode.querySelector('span').classList.toggle('green');" />
</td>
现在,有时这些行包含相同的标签,例如,我出现在第一行和第二行中,这两行的代码几乎相同(因为它们的id和名称的值是动态的)

不管怎样,我正面临一个奇怪的问题。如果您选中一个复选框,我希望它的关联字母变成绿色,因此我添加了一点javascript。这个很好用。然而,我的问题是,我点击第二行的字母I(而不是复选框)。如果我这样做,第一行中I的复选框将被选中,第一行中的I将变为绿色。所以,勾选复选框可以很好地工作,但如果我点击一个字母,事情就会一团糟

是否有任何理由查看我的代码以了解为什么会发生这种情况?我在这方面没有其他javascript,我只能认为这是因为标签和复选框被复制到其他行上,但这仍然让我有点困惑,为什么会发生这种情况

谢谢

注意ID必须是唯一的

不要为属性指定
,而是用标签包装输入。这使得不必知道嵌套控件的确切id

.green{
颜色:绿色;
}

C0
C0

是否为具有相同标签的条目复制ID?如果是这样,那么所有具有相同ID的复选框的元素将通过其“for”属性引用第一个这样的复选框。这现在是有意义的。让我调查了一些事情,现在已经整理好了,谢谢。
LX IX DX JX
OX PX IX DX 
BX AX WX QX