【发布时间】:2019-08-30 13:00:51
【问题描述】:
我有四个具有相同类但不同 ID 的 div 元素。在每个 div 中,我有一个段落元素和一个跨度元素。跨度具有相同的类但不同的ID。在跨度内,我使用 fa-times(close) 图标关闭外部 div。用 JavaScript 怎么做?
我尝试使用类名声明变量,但它返回一个 HTML 集合数组。但是,我可以通过从数组内部定位每个元素来隐藏父 div。但我知道这是错误的方法。
代码
function close() {
var clost = document.getElementsByClassName('span');
clost[0].parentElement.style.display = 'none';
}
<div class="div" id="div_1">
<p>Please Enter a Keyword</p>
<span class="span" onclick="close()" id="span_1">
<i class="fa fa-times" aria-hidden="true"></i></span>
</div>
<div class="div" id="div_2">
<p>Enter your name</p>
<span class="span" onclick="close()" id="span_2">
<i class="fa fa-times" aria-hidden="true"></i></span>
</div>
<div class="div" id="div_3">
<p>Enter your city</p>
<span class="span" onclick="close()" id="span_3">
<i class="fa fa-times" aria-hidden="true"></i></span>
</div>
<div class="div" id="div_4">
<p>Enter your country</p>
<span class="span" onclick="close()" id="span_4">
<i class="fa fa-times" aria-hidden="true"></i></span>
</div>
错误:找不到未定义的父级
预期结果:所有 div 应在单击 fa 图标时单独关闭。"
【问题讨论】:
-
可以选择 jQuery 吗?
-
可以使用但想使用javascript。
-
“错误:找不到未定义的父级” – 你从哪里得到这个错误?您显示的代码,但进入 jsfiddle,在 Chrome 中没有显示任何此类错误。
-
你不应该在这里调用你的函数
close- 这有可能与窗口对象的close方法发生冲突。选择其他名称。 -
clost[0]将始终是类span的第一个元素,因此这没有帮助。您可以简单地将当前元素作为参数传递给事件处理函数:onclick="myclose(this)",function myclose(element) { element.parentElement … }
标签: javascript