亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JS 函數 addEventListener 僅適用于我的列表的第一個元素

JS 函數 addEventListener 僅適用于我的列表的第一個元素

墨色風雨 2023-07-06 11:01:36
我顯示一個用戶列表,并在每個用戶的末尾添加 2 個按鈕,一個用于編輯,另一個用于刪除用戶,我的大問題是只有列表中第一個元素的按鈕起作用。此代碼顯示我的列表<tbody>            <?php for( $i = 0; $i < count($users->datos); $i++ ): ?>                <tr>                    <td style="padding: 0 20px;"><?php echo $users->datos[$i]["email"  ]; ?></td>                    <td style="padding: 0 20px;"><?php echo $users->datos[$i]["paterno"]; ?></td>                    <td style="padding: 0 20px;"><?php echo $users->datos[$i]["materno"]; ?></td>                    <td style="padding: 0 20px;"><?php echo $users->datos[$i]["nombre" ]; ?></td>                    <td style="padding: 0 20px;">                        <?php                        echo preg_replace(PHONE_NUMBER, "($1) $2-$3", $users->datos[$i]["movil"]);                        ?>                    </td>                                        <td id="botones">                        <form id="ed" method="POST">                            <input  type="hidden" id="token" name="token" value="<?php echo $users->datos[$i]["tokenA"]; ?>">                                                        <button type="submit" id="<?php echo $users->datos[$i]["id"]; ?>" class="buttonDelete"><i class="fas fa-trash-alt"></i></button>                            <button type="submit" id="<?php echo $users->datos[$i]["id"]; ?>" class="buttonEdit"  ><i class="fas fa-edit"     ></i></button>                        </form>                    </td>                </tr>            <?php endfor; ?>        </tbody>這是我的 JavaScript 代碼const formEditDel = document.querySelector('form#ed');const userDel = formEditDel.querySelectorAll('[class="buttonDelete"]')const userEdit = formEditDel.querySelectorAll('[class="buttonEdit"]')eventListeners();function eventListeners(event) {    userDel.forEach(button => {        button.addEventListener('click', markDeleted);    });    userEdit.forEach(button => {        button.addEventListener('click', userEdited);    });}我真的不知道該怎么辦,所以任何建議將不勝感激。
查看完整描述

2 回答

?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

由于每一行都包含一個單獨的表單,因此使用 id 來選擇它們只會選擇第一個。

所以,你可以替換這個

const userDel = formEditDel.querySelectorAll('[class="buttonDelete"]')
const userEdit = formEditDel.querySelectorAll('[class="buttonEdit"]')

有了這個

const userDel = document.querySelectorAll('[class="buttonDelete"]')
const userEdit = document.querySelectorAll('[class="buttonEdit"]')

或者你可以替換這個

<form id="ed" method="POST"> ... </form>

有了這個

<form class="ed" method="POST"> ... </form>

然后使用類選擇表單

const formEditDel = document.querySelector('form.ed');


查看完整回答
反對 回復 2023-07-06
?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

這是最終的代碼


const userDel  = document.querySelectorAll('.buttonDelete');

const userEdit = document.querySelectorAll('.buttonEdit');


eventListeners();


function eventListeners(event) {

    userDel.forEach(buttonDel => {

        buttonDel.addEventListener('click', markDeleted);

    });


    userEdit.forEach(buttonEdit => {

        buttonEdit.addEventListener('click', userEdited);

    });

}


查看完整回答
反對 回復 2023-07-06
  • 2 回答
  • 0 關注
  • 232 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號