0

HTML 代码:

<div id="section">
  <div id="title" onclick="hideBody()"></div>
  <div id="body"></div>
</div>

如何id="body"使用...访问元素this.
例子:
this.parent.child[1];

4

3 回答 3

1

您可以使用nextElementSibling.

例子:

function hideBody(el) {
    'use strict';
    var sibling = el.nextElementSibling;
    console.log(sibling);

    sibling.style.visibility = 'hidden';
}

请参阅jsFiddle

至于回答你关于子节点的原始问题,有一个childNodes属性。例如:

var children = document.getElementById('section').childNodes;

相对于“ this”(显示在 hideBody 函数中):

function hideBody(el) {
    'use strict';
    var children = el.parentNode.childNodes;
    console.log(children);

    children[1].style.visibility = 'hidden';
}
于 2013-10-21T17:15:41.030 回答
0

我不确定在这里使用“this”是否合适,但您当然可以传递事件并获取点击目标的 ID:

http://jsfiddle.net/isherwood/6k7fc/

<div id="title" onclick="hideBody(event)"></div>

function hideBody(event) {
    var myId = event.target.id;
    var myEl = document.getElementById(myId);
    ... do stuff with myEl ...
}
于 2013-10-21T17:14:33.080 回答
0

要获取 div 的子节点,请使用:

var childNodes = parent.childNodes;

或者

var { childNodes } = parent;
于 2019-10-18T20:29:42.967 回答