this.parentNode.parentNode
正解です、あなたは(謝罪して!)あなたがそれを試したテストで間違いを犯したに違いありません。
例:ライブコピー| ソース
HTML:
<div id="outermost">Outermost
<div id="inner1">Inner 1
<div id="inner2">Inner 2</div>
</div>
</div>
JavaScript:
var inner2 = document.getElementById("inner2");
display("inner2.id = " + inner2.id);
display("inner2.parentNode.id = " + inner2.parentNode.id);
display("inner2.parentNode.parentNode.id = " + inner2.parentNode.parentNode.id);
display("Try clicking the blue 'inner2' above");
inner2.onclick = function(e) {
display("Click: this.id = " + this.id);
if (this.parentNode) {
display("Click: this.parentNode.id = " + this.parentNode.id);
if (this.parentNode.parentNode) {
display("Click: this.parentNode.parentNode.id = " + this.parentNode.parentNode.id);
}
}
};
function display(msg) {
var p = document.createElement('p');
p.innerHTML = String(msg);
document.body.appendChild(p);
}
出力(指示どおりにワンクリックを想定):
inner2.id = inner2
inner2.parentNode.id = inner1
inner2.parentNode.parentNode.id=最も外側
上の青い「inner2」をクリックしてみてください
クリック:e.target.id = inner2
クリック:e.target.parentNode.id = inner1
クリック:e.target.parentNode.parentNode.id=最も外側