获取普通JS中clicked元素的parentNode

6 javascript parent this

我需要获取我正在使用的普通JS(没有jQuery或其他框架)中的单击元素的parentNode,document.getElementById("item_click") 但我想改为id="item_click",class="item_click"所以我可以使用多个框.我只是不知道如何this在脚本中集成

这是一个小提琴 <<<玩它

HTML

<div class="item">
    <div  class="item-tester" >
        <div class="item-icon"></div>
        <div class="item-title">Item Title</div>
    </div>
    <div id="item_click" onmousedown="new_class(event)" onmouseup="revert_class(event)" onmouseout="revert_class(event)"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

JS

function new_class(event) {
    wClick = document.getElementById("item_click");
    wTile = wClick.parentNode;
    wTile.className = wTile.className + " added-class";
}
function revert_class(event) {
    wTile.className = "item";
}
?
Run Code Online (Sandbox Code Playgroud)

我想改变

wClick = document.getElementById("item_click");
wTile = wClick.parentNode;
Run Code Online (Sandbox Code Playgroud)

喜欢的东西

wClick = this;
wTile = wClick.parentNode;
Run Code Online (Sandbox Code Playgroud)

我知道如何在jQuery的做到这一点,但纯JS,因为它不会工作this 将是window(我认为)

BTW.我需要(事件),因为这只是我正在使用的整个代码的简化.

Tro*_*att 9

function new_class(event) {
    wTile = event.target.parentNode;
    wTile.className = wTile.className + " added-class";
}
Run Code Online (Sandbox Code Playgroud)


A-S*_*ani 5

您可以只使用event.target.parentNode甚至不需要event在函数中传递):

function new_class() {
    var parent = event.target.parentNode;
    // Do whatever...
}
Run Code Online (Sandbox Code Playgroud)