找到最近的隐藏元素并用jQuery显示它
我想显示一个元素,但我必须注意,元素是可见的。 元素可能以不同的方式嵌套(div、span、i…) 因此,我想为目标找到最近的元素,它是不可见的,并对其进行更改 我试过这样做,但失败了:找到最近的隐藏元素并用jQuery显示它,jquery,Jquery,我想显示一个元素,但我必须注意,元素是可见的。 元素可能以不同的方式嵌套(div、span、i…) 因此,我想为目标找到最近的元素,它是不可见的,并对其进行更改 我试过这样做,但失败了: //info: result.msg_target_id = '#myid' $(result.msg_target_id).closest(':hidden').show(); 是否可以仅将“最近”与“:hidden”-一起使用,而不使用div、span、i等 我做错了什么,或者哪种方法是最好的 更新 这是
//info: result.msg_target_id = '#myid'
$(result.msg_target_id).closest(':hidden').show();
是否可以仅将“最近”与“:hidden”-一起使用,而不使用div、span、i等
我做错了什么,或者哪种方法是最好的
更新这是HTML部分,但请不要,这只是一种可能的HTML情况,它不知道上面的函数在哪个HTML情况下使用
<div id="modal_errormsg_div" class="alert alert-danger alert-dismissible hide">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h5><i class="icon fa fa-ban"></i><span id="modal_errormsg_head"> <?= trans('error')?></span></h5>
<span id="modal_errormsg_body"></span>
</div>
基于@Swati,这里是解决这个问题的方法
$("#myid-inside").show()//show first the divs whose id is there
$("#myid-inside").parent(".hide:first").addClass('show').removeClass('hide') //use parent because the outer div is parent of inner .
//if the div which you need to display is at same level i.e :
//<div id="myid-outside" class="hide">
//<p id="myid-inside1" style="display:none;">Show me</p>
// <p id="myid-inside" style="display:none;">Show me</p>
//</div>
//here `myid-inside1` is on same level so use sibilings ..or prevAll else if its not in same level use parent .
$(“#myid inside”).show()//首先显示id所在的div
$(“#myid inside”).parent(.hide:first”).addClass('show').removeClass('hide')//使用parent,因为外部div是内部div的父级。
//如果需要显示的div处于同一级别,即:
//
//演示给我看
//显示给我看
//
//此处“myid-inside1”处于同一级别,因此请使用siblings..或prevAll,如果它不在同一级别,请使用parent。
基于@Swati这里是解决这个问题的方法
$("#myid-inside").show()//show first the divs whose id is there
$("#myid-inside").parent(".hide:first").addClass('show').removeClass('hide') //use parent because the outer div is parent of inner .
//if the div which you need to display is at same level i.e :
//<div id="myid-outside" class="hide">
//<p id="myid-inside1" style="display:none;">Show me</p>
// <p id="myid-inside" style="display:none;">Show me</p>
//</div>
//here `myid-inside1` is on same level so use sibilings ..or prevAll else if its not in same level use parent .
$(“#myid inside”).show()//首先显示id所在的div
$(“#myid inside”).parent(.hide:first”).addClass('show').removeClass('hide')//使用parent,因为外部div是内部div的父级。
//如果需要显示的div处于同一级别,即:
//
//演示给我看
//显示给我看
//
//此处“myid-inside1”处于同一级别,因此请使用siblings..或prevAll,如果它不在同一级别,请使用parent。
你能显示你的html吗?我已经更新了一个样本。我不确定这是否是你需要的。你能像这样试试吗$(“#myid”).prevAll(“:hidden:first”).show()代码>。使用fiddle@Swati我已经试过了,但它对我不起作用,零件仍然不可见(display:none)可能是“hide”类导致了问题?那么这个$(“#myid”).prevAll(.hide:first”).addClass('show').removeClass('hide')怎么样
.Working你能显示你的html吗?我已经更新了一个示例。不确定这是否是你需要的。你能像这样试试吗$(“#myid”).prevAll(“:hidden:first”).show()代码>。工作小提琴@Swati我已经试过了,但它对我不起作用,零件仍然不可见(display:none)可能是“hide”类导致了问题?那么这个$(“#myid”).prevAll(.hide:first”).addClass('show').removeClass('hide')
怎么样
$(result.msg_target_id).siblings(':hidden').show();
$(result.msg_target_id).siblings(':hidden').removeClass('hide');
$("#myid-inside").show()//show first the divs whose id is there
$("#myid-inside").parent(".hide:first").addClass('show').removeClass('hide') //use parent because the outer div is parent of inner .
//if the div which you need to display is at same level i.e :
//<div id="myid-outside" class="hide">
//<p id="myid-inside1" style="display:none;">Show me</p>
// <p id="myid-inside" style="display:none;">Show me</p>
//</div>
//here `myid-inside1` is on same level so use sibilings ..or prevAll else if its not in same level use parent .