我需要隐藏或删除具有相同类的div,但是一对一,实际上我可以一次删除所有具有相同类的div,而我不希望这样做
问题在于元素不是在容器中分隔的,我认为这是问题,但是我需要这种结构,我把我的代码
JQUERY
<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做到这一点
非常感谢
答案 0 :(得分:0)
将功能更改为: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>
答案 1 :(得分:0)
要修改代码,请执行以下操作:
id
,因此请从您的id="elements"
元素中删除div
class="test test_1"
或class="test test_2"
onclick
元素上的span
属性来处理点击事件,因此您可以使用jQuery更轻松地选择它们,因此请删除{您的onclick="close_tabs(this)"
元素中的{1}} span
进行样式设置,不如在元素上使用更通用的类#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;
}