我需要隐藏或删除,具有相同类的div,但是一对一,实际上我可以一次删除具有相同类的所有div,我不想要这个
问题是元素不是在容器内部分离的,我认为这就是问题所在,但我需要这个结构,我把我的代码放进去了
简讯
<script>
function close_tabs(idc)
{
$(idc).parent().hide();
}
</script>
CSS 样式
<style>
#elements
{
position:relative;
width:400px;
height:40px;
margin-left:auto;
margin-right:auto;
margin-bottom:7px;
background-color:green;
}
</style>
.HTML:
<div id="elements" class="test_1"></div><span onclick="close_tabs(this)">Div 1</span>
<div id="elements" class="test_1"></div><span onclick="close_tabs(this)">Div 2</span>
<div id="elements" class="test_1"></div><span onclick="close_tabs(this)">Div 3</span>
<div id="elements" class="test_1"></div><span onclick="close_tabs(this)">Div 4</span>
当单击跨度区域时,我需要关闭该div 而不是全部,但我需要它适用于相同的 html,我不知道如何从 jquery 执行此操作
提前谢谢,问候
将函数更改为:prev()
获取前一个同级元素,toggle()
赋予元素按顺序隐藏和显示的能力
function close_tabs(idc) {
$(idc).prev().remove();
$(idc).remove();
}
#elements
{
position:relative;
width:400px;
height:40px;
margin-left:auto;
margin-right:auto;
margin-bottom:7px;
background-color:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="elements" class="test_1"></div><span onclick="close_tabs(this)">Div 1</span>
<div id="elements" class="test_1"></div><span onclick="close_tabs(this)">Div 2</span>
<div id="elements" class="test_1"></div><span onclick="close_tabs(this)">Div 3</span>
<div id="elements" class="test_1"></div><span onclick="close_tabs(this)">Div 4</span>
要修复代码,请执行以下操作:
- 页面上具有相同
id
的元素不应超过 1 个,因此请从div
元素中删除id="elements"
- 为了使用 jQuery 轻松选择元素,我建议使用通用类,然后遵循越来越具体的类,例如
class="test test_1"
或class="test test_2"
- 由于您使用的是 jQuery,因此不必在
span
元素上使用onclick
属性来处理点击事件,您可以使用 jQuery 更轻松地选择它们,因此请从span
元素中删除onclick="close_tabs(this)"
在 CSS 中,将元素的样式从更通用 - 到最具体的样式,例如,不要使用
#element
样式,而是使用元素上更通用的类.test
来设置它们的样式
// select your elements via the '.test' class
// and handle their click events
$('.test').on('click', function () {
// store the element wrapped with jQuery
var element = $(this);
// hide the element
element.hide();
// hide the element next to it
element.next().hide();
});
.test {
position: relative;
margin-left: auto;
margin-right: auto;
margin-bottom: 7px;
width: 400px;
height: 40px;
background-color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test test_1"></div><span>Div 1</span>
<div class="test test_2"></div><span>Div 2</span>
<div class="test test_3"></div><span>Div 3</span>
<div class="test test_4"></div><span>Div 4</span>