简体   繁体   English

.closest() 获取隐藏的 div 值

[英].closest() to take a hidden div value

I have a question related on how to take the id value of a tag html closest to the element thats has been clicked, the problem is the element where are talking is far away in the html and is also hidden.我有一个关于如何获取最接近已单击元素的标签 html 的 id 值的问题,问题是正在说话的元素在 html 中很远并且也被隐藏了。 This is the html :这是 html :

<div class="panel-group" id="address_AddressList">
    <div style="margin-bottom:15px">
        <a class="btnAddAdress btn-primary btn btn-labeled" href="#" id="btnAddAdress" title="Nueva dirección"><span class="btn-label"><i class="fa fa-plus fa"></i></span>Nueva dirección</a>
    </div>
    <div class="panel panel-default address containerAddresses" id="0" data-placeinlist="0">

        <div class="panel-heading">

        </div>

        <div class="panel-collapse collapse" id="collapseAssignedArea0">
            <div class="panel-body">

            </div>
        </div>
    </div>
    <div class="panel panel-default address containerAddresses" id="1" data-placeinlist="1">

        <div class="panel-heading">

        </div>

        <div class="panel-collapse collapse" id="collapseAssignedArea1" aria-expanded="false" style="height: 0px;">
            <div class="panel-body">

                <div class="AreasContainer" data-urlgetareas="/location/getareas" data-urlsearchareas="/location/searchareas">

                </div>
            </div>
        </div>
    </div>
</div>
<!--Nueva direccion-->
<div>
    <div class="panel-group address_newAddress hidden">
        <div class="panel panel-default address">

            <div class="panel-heading">

            </div>

            <div class="panel-collapse collapse in" id="collapseAssignedArea2">
                <div class="panel-body">


                    <div class="row margin-top-10">
                        <div class="col-md-10">
                            <a class="btn btn-default col-md-12 btnAgregarAddress" data-url="/resource/updateaddresslistadminview" href="#" id="btnSaveAddress" title="Agregar"><i class="fa fa-arrow-up "></i> Agregar</a>
                        </div>
                        <div class="col-md-2">
                            <a class="btn btn-danger col-md-12" href="#" id="btnCancelAddress" title="Cancelar"><i class="fa fa-ban "></i> Cancelar</a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

And what I want is to take the id value of the last of these divs:我想要的是获取这些 div 中最后一个的 id 值:

$(".panel.panel-default.address.containerAddresses")

I have tried these:我试过这些:

$('.btn.btn-default.col-md-12.btnAgregarAddress')
    .closest(".panel.panel-default.address.containerAddresses")

$('.btn.btn-default.col-md-12.btnAgregarAddress')
    .closest(".panel.panel-default.address.containerAddresses")
    .siblings("div:hidden").attr("id");

$('.btn.btn-default.col-md-12.btnAgregarAddress')
    .closest(".panel.panel-default.address[div:hidden]")

So what I want is this: 1) from this selector: <a class="btn btn-default col-md-12 btnAgregarAddress" 2) take the id of tha last <div class="panel panel-default address containerAddresses"... </div> It is clear??所以我想要的是: 1) 从这个选择器: <a class="btn btn-default col-md-12 btnAgregarAddress" 2) 取最后一个<div class="panel panel-default address containerAddresses"... </div>的 id <div class="panel panel-default address containerAddresses"... </div>清楚了吗?? How I can get the value of the last(the first element above the clicked one) ?我如何获得最后一个(点击的元素上方的第一个元素)的值?

With your given code, you can target it like this from where you have clicked.使用给定的代码,您可以从单击的位置像这样定位它。 You could also target that by using #address_AddressList ID.您还可以使用#address_AddressList ID 来定位它。 I am not sure what the requirements are.我不确定要求是什么。 Honestly, if you put a class or ID on the container div(at highest level without any identifiers), it would make this a lot easier, or target using that ID i mentioned before老实说,如果您在容器 div 上放置一个类或 ID(在没有任何标识符的最高级别),它会更容易,或者使用我之前提到的 ID 进行定位

 $(".btnAgregarAddress").on("click", function() { var targetID = $(this).closest(".panel-group").parent().prev().find(".containerAddresses").last().get(0).id; // this also works and it is better var targetID2 = $("#address_AddressList").find(".containerAddresses").last().get(0).id; console.log( targetID ); console.log( targetID2 ); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="panel-group" id="address_AddressList"> <div style="margin-bottom:15px"> <a class="btnAddAdress btn-primary btn btn-labeled" href="#" id="btnAddAdress" title="Nueva dirección"><span class="btn-label"><i class="fa fa-plus fa"></i></span>Nueva dirección</a> </div> <div class="panel panel-default address containerAddresses" id="0" data-placeinlist="0"> <div class="panel-heading"> </div> <div class="panel-collapse collapse" id="collapseAssignedArea0"> <div class="panel-body"> </div> </div> </div> <div class="panel panel-default address containerAddresses" id="1" data-placeinlist="1"> <div class="panel-heading"> </div> <div class="panel-collapse collapse" id="collapseAssignedArea1" aria-expanded="false" style="height: 0px;"> <div class="panel-body"> <div class="AreasContainer" data-urlgetareas="/location/getareas" data-urlsearchareas="/location/searchareas"> </div> </div> </div> </div> </div> <!--Nueva direccion--> <div> <div class="panel-group address_newAddress hidden"> <div class="panel panel-default address"> <div class="panel-heading"> </div> <div class="panel-collapse collapse in" id="collapseAssignedArea2"> <div class="panel-body"> <div class="row margin-top-10"> <div class="col-md-10"> <a class="btn btn-default col-md-12 btnAgregarAddress" data-url="/resource/updateaddresslistadminview" href="#" id="btnSaveAddress" title="Agregar"><i class="fa fa-arrow-up "></i> Agregar</a> </div> <div class="col-md-2"> <a class="btn btn-danger col-md-12" href="#" id="btnCancelAddress" title="Cancelar"><i class="fa fa-ban "></i> Cancelar</a> </div> </div> </div> </div> </div> </div> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM