7

I need to get the ID of an element that was clicked, but I need to to keep all my js and html separate. normally id just use 'this.id' in the html. Any other ways?

4

3 に答える 3

12

This is what e.target is for. You can add an event listener anywhere you want, as long as the click event is allowed to bubble up to it (which happens by default) you can catch it. A basic example:

document.addEventListener('click', function(e) {
    alert(e.target.id);
});

Clicking on each will alert its id. Hope this helps :)

<button id="foo">foo</button>
<button id="bar">bar</button>
<button id="baz">baz</button>

EDIT

http://jsfiddle.net/95NZ8/

于 2012-04-22T19:13:30.353 に答える
0

Try something like this:

$(document).ready(function () {
    $("#someWrapper").each(function () {
        $(this).on('click', function () {
            alert(this.id);
        });
    });
});
于 2012-04-22T19:03:13.790 に答える
0
window.onclick = e => {
    console.log(e.target.id);
}

to get element, tagname, classname , other attributes

window.onclick = e => {
    console.log(e.target);
    console.log(e.target.tagName);
    console.log(e.target.className);
    console.log(e.target.id);
} 
于 2017-07-04T10:24:46.550 に答える