首页 > 解决方案 > 如何在单击而不是 javaScript 中的 [object MouseEvent] 时获得价值

问题描述

所以我的所有按钮上都有一个事件处理程序。按钮比调用应该转到 servlet 的函数。

这是我按钮上的监听器。

    const buttons = document.getElementsByClassName("category-button");

for (let i = 0; i < buttons.length; ++i) {
    buttons[i].addEventListener("click", function () {
        populateDeleteTable(this.value);
    });
}

我给我的函数一个参数,当我点击按钮时,我得到一个对象鼠标事件。

function populateDeleteTable(category) {

这就是我得到的。我画了不重要的部分。

在此处输入图像描述

所以基本上不是[object MouseEvent]我想要按钮的 id 我该einID2 怎么做?

编辑:

这是功能。也许有人看到了问题。当前代码

const buttons = document.getElementsByClassName("category-button");

for (let i = 0; i < buttons.length; ++i) {
buttons[i].addEventListener("click", function (event) {
    populateDeleteTable(event.target.id);
});
}



function populateDeleteTable(category) {

    var servletURL = "../deleteServlet_1"

    console.log(category);

    let xmlHttpRequest = new XMLHttpRequest();

    
    xmlHttpRequest.onreadystatechange = function () {
        if (xmlHttpRequest.readyState === 4 && xmlHttpRequest.status === 200) {

            console.log("test inner")
            console.log(xmlHttpRequest.responseText);

            let itemGetter = JSON.parse(xmlHttpRequest.responseText);
            JSON.stringify(itemGetter);

            var ausgabe = "<table><tr><th>ID</th><th>Artikel Bezeichnung</th><th>Preis</th><th>Kategorie</th></tr>";

            

            for (var i = 0; i <= itemGetter.length - 1; i++) {


                //servletURL.searchParams.append("lookfor", itemGetter[i].kategorie);
                ausgabe += "<tr><td>";
                ausgabe += itemGetter[i].id;
                ausgabe += "</td><td>";
                ausgabe += itemGetter[i].artikelName;
                ausgabe += "</td><td>";
                ausgabe += itemGetter[i].preis.toFixed(2);
                ausgabe += "</td><td>";
                ausgabe += itemGetter[i].kategorie;
                ausgabe += "</td><td>";
                ausgabe += "<a href= \"deleteServlet_2?id=" + itemGetter[i].id + "\">Delete</a>"

            }
            ausgabe += "</td></tr></table>";
            document.getElementById("listeDeleteB").innerHTML = ausgabe;





        }
    };

    xmlHttpRequest.open("GET", servletURL + "?category=" + encodeURI(category), true);
    xmlHttpRequest.send();
}

标签: javascriptservlets

解决方案


访问您单击的元素event.target,然后通过 查看文档来查看它的ID,您可以找到更多对您有用的东西。 https://developer.mozilla.org/en-US/docs/Web/API/Event/targetevent.target.idevent.target


推荐阅读