-1

我想为我的所有元素兄弟姐妹添加一个类。除了我点击的第一个元素之外,我设法做到了这一点。

我想得到我所有的兄弟姐妹。有人可以启发我吗?

谢谢

请参阅下面的 HTML 和 JS:

    <table>
<thead>
    <tr>
        <th>one</th>
        <th>two</th>
        <th>three</th>
        <th>four</th>
    </tr>
</thead>

<tr id="first">
    <td>row11</td>
    <td>row12</td>
    <td>row13</td>
    <td>row14</td>
</tr>
<tr>
    <td>row21</td>
    <td>row22</td>
    <td>row23</td>
    <td>row24</td>
</tr>
<tr>
    <td>row31</td>
    <td>row32</td>
    <td>row33</td>
    <td>row34</td>
</tr>
<tr>
    <td>row41</td>
    <td>row42</td>
    <td>row43</td>
    <td>row44</td>
</tr>
</table>

document.querySelectorAll("#first").forEach(element => {
    let childs = element.children;
    
    for (allChildren of childs) {
        allChildren.addEventListener("click", function() {
            let current = allChildren.parentElement;
            let nextSibling = current.nextSibling.nextElementSibling;
            
            while(nextSibling) {
                nextSibling = nextSibling.nextElementSibling;
                console.log(nextSibling);
                nextSibling.classList.add("added_test")
            }
        })
    }
});

单击第一行时的控制台输出。 在此处输入图像描述

4

2 回答 2

1

看来你得到了下一个兄弟姐妹两次。将第二个下一个兄弟行放在您的 while 循环中。

于 2021-01-14T18:30:01.913 回答
0

您可以发送在点击事件上编写的代码吗?为了更好地理解问题

于 2021-01-14T18:20:43.023 回答