Используйте this.id, когда addEventListener в JavaScript - PullRequest
0 голосов
/ 06 января 2020

Я хочу получить идентификатор элемента, созданного в javascript, когда мы нажимаем на него.

Например:

    var input_check  = document.createElement("INPUT");
    input_check.id = 1;
    input_check.type = "checkbox";
    input_check.addEventListener("click", test);


    //Come here when s1 click on the checkbox
    function test(id){
        console.log(id);
    }

Очевидно, что в этом примере я не могу напечатать «ID», потому что мне нужно «сгенерировать» с javascript что-то вроде этого:

<input id="1" type="checkbox" onClick="test(this.id)">

В предыдущем примере у меня есть что-то вроде этого:

<input id="1" type="checkbox" onClick="test()">

Ответы [ 2 ]

2 голосов
/ 06 января 2020

Делайте то же, что и вы, когда писали функцию onclick в качестве значения атрибута.

input_check.addEventListener("click", function () {
    test(this.id);
});

Или просто пишите test, чтобы в первую очередь ожидать вызова в качестве прослушивателя событий:

input_check.addEventListener("click", test);
function test(event) {
    console.log(this.id);
}
0 голосов
/ 06 января 2020

Чтобы сгенерировать ввод в HTML, вы должны добавить созданный вами ввод в тело, например:

document.body.appendChild(input_check);
...