单击时元素应隐藏在父元素之外
On click element should hide from parent element
在一个给定的任务中,我使用了四次"数据行",其中有一个链接有"编辑"。
我希望当我点击"编辑"时,这应该与"数据"类一起隐藏,并只显示当前"数据行"中的"获取输入"。在我的查询中,当我点击"编辑"时,它会隐藏在所有的"数据行"中。
这其中的逻辑是什么?
HTML:
<div class="data-row">
<span class="data-label">Email:</span>
<span class="data"><a href="mailto:info@apus.edu">info@sjsu.edu</a> </span>
<div class="hidden get-input phone">
<input type="phone" placeholder="Enter phone number" value="877-755-2787">
</div>
<a href="#" class="edit-contact orange f-right"> Edit</a>
</div>
CSS:
.hidden {
display: none;
}
.data-row {margin-bottom:20px}
jQuery:
$(".edit-contact").click(function () {
$(this).addClass("hidden");
$(".data").addClass("hidden");
$(".get-input").removeClass("hidden");
});
检查此处JSFiddle
选择器选择具有类数据的所有元素。您需要指定要将类添加到哪个。您可以使用:
$(this).parent().children(".data").addClass("hidden");
您必须使用this
引用来隐藏与单击的元素相关的元素
$(".edit-contact").click(function(){
$(this).prev(".get-input").removeClass("hidden")
.prev(".data").add(this).addClass("hidden");
});
.prev()
将选择与单击的元素相关的前一个同级。
演示
您可以使用event.target查找当前单击的编辑图标。下面是js对此的更改。
$(".edit-contact").click(function(event){
$(this).addClass("hidden");
$(event.target.parentNode).find(".data").addClass("hidden");
$(event.target.parentNode).find(".get-input").removeClass("hidden");
});
更改并检查JS fiddle
相关文章:
- 切换一个元素并将其余元素隐藏在同一包装类下
- CSS 动画在元素隐藏时暂停
- 检查元素是否可见,父元素隐藏在DOM中
- 粘性导航元素 - 隐藏然后显示
- show() 在元素隐藏时不起作用
- 通过可见性隐藏和显示元素:隐藏/可见
- 如何从检查页面元素隐藏Blogger中的javascript代码
- 基于页面元素隐藏部分html代码
- 使用jQuery和select元素隐藏动态类
- Jquery Div元素隐藏
- 当指针在父元素上时,Boostrap工具提示会在父元素隐藏之前触发悬停事件
- 聚焦元素隐藏在固定菜单后面
- 将jQuery中的元素隐藏在表中
- 元素.隐藏变量可移植性
- 如何使一个元素隐藏在向下滚动的wordpress
- 当父元素隐藏时,如何使用jquery show()
- 高度:自动计算错误,如果元素隐藏时dom加载,然后显示
- Javascript元素隐藏不起作用
- 使元素隐藏后直接显示完成jquery
- HTML表单元素隐藏的onload javascript