简体   繁体   English

jQuery如何直接到达任何单击元素的根元素

[英]How to directly reach the root element of any clicked element by jQuery

I've code Like below: 我的代码如下:

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> <div class="col-sm-8"> <div class="v7Boxshadow active"> <h2 class="v7CartHeading"> Review Order </h2> <div class="v7CartDetail"> <div class="v7Cartlist" data-id="66" data-ptype="1"> <div class="row"> <div class="col-sm-3 col-xs-3"> <div class="cratRemove cartListOder"> <button class="btn-v7" type="submit"><span>♡</span> Move to Wishlist </button> <button class="btn-v7 delete" type="button"> <img src="../img/close.svg" alt="close"> Remove Item </button> </div> </div> <div class="col-sm-6 col-xs-9"> <div class="cartDetail"> <p class="courseName">Product 1</p> <p class="crsVendore">Course </p> </div> </div> <div class="col-sm-3"> <div class="cartPrice"> <p>Price:</p> <p class="CrsPrice"> <small class="currency">INR</small> <span class="price">65,700</span> </p> </div> </div> </div> </div> </div> <div class="v7Cartlist" data-id="67" data-ptype="1"> <div class="row"> <div class="col-sm-3 col-xs-3"> <div class="cratRemove cartListOder"> <button class="btn-v7" type="submit"><span>♡</span> Move to Wishlist </button> <button class="btn-v7 delete" type="button"> <img src="../img/close.svg" alt="close"> Remove Item </button> </div> </div> <div class="col-sm-6 col-xs-9"> <div class="cartDetail"> <p class="courseName">Product 2</p> <p class="crsVendore">Exam </p> </div> </div> <div class="col-sm-3"> <div class="cartPrice"> <p>Price:</p> <p class="CrsPrice"> <small class="currency">INR</small> <span class="price">5,700</span> </p> </div> <div class="quantitySet"> <p>Quantity:</p> <div class="quantity-div"> <span class="quantity minus" data-o="m">–</span> <span class="count">1</span> <span class="quantity plus" data-o="p">+</span> </div> </div> </div> </div> </div> </div> <div class="v7CartDetail"> <div class="v7Cartlist" data-id="68" data-ptype="1"> <div class="row"> <div class="col-sm-3 col-xs-3"> <div class="cratRemove cartListOder"> <button class="btn-v7" type="submit"><span>♡</span> Move to Wishlist </button> <button class="btn-v7 delete" type="button"> <img src="../img/close.svg" alt="close"> Remove Item </button> </div> </div> <div class="col-sm-6 col-xs-9"> <div class="cartDetail"> <p class="courseName">Product 3</p> <p class="crsVendore">Course </p> </div> </div> <div class="col-sm-3"> <div class="cartPrice"> <p>Price:</p> <p class="CrsPrice"> <small class="currency">INR</small> <span class="price">65,700</span> </p> </div> </div> </div> </div> </div> <div class="v7Cartlist" data-id="69" data-ptype="1"> <div class="row"> <div class="col-sm-3 col-xs-3"> <div class="cratRemove cartListOder"> <button class="btn-v7" type="submit"><span>♡</span> Move to Wishlist </button> <button class="btn-v7 delete" type="button"> <img src="../img/close.svg" alt="close"> Remove Item </button> </div> </div> <div class="col-sm-6 col-xs-9"> <div class="cartDetail"> <p class="courseName">Product 4</p> <p class="crsVendore">Course </p> </div> </div> <div class="col-sm-3"> <div class="cartPrice"> <p>Price:</p> <p class="CrsPrice"> <small class="currency">INR</small> <span class="price">65,700</span> </p> </div> </div> </div> </div> <div class="v7CartDetail"> <div class="v7Cartlist" data-id="70" data-ptype="1"> <div class="row"> <div class="col-sm-3 col-xs-3"> <div class="cratRemove cartListOder"> <button class="btn-v7" type="submit"><span>♡</span> Move to Wishlist </button> <button class="btn-v7 delete" type="button"> <img src="../img/close.svg" alt="close"> Remove Item </button> </div> </div> <div class="col-sm-6 col-xs-9"> <div class="cartDetail"> <p class="courseName">Product 5</p> <p class="crsVendore">Course </p> </div> </div> <div class="col-sm-3"> <div class="cartPrice"> <p>Price:</p> <p class="CrsPrice"> <small class="currency">INR</small> <span class="price">65,700</span> </p> </div> </div> </div> </div> </div> </div> 

Now I want that if, 现在我想要

I click on any button in that code. 我单击该代码中的任何按钮。 Then I need the data of the root div class="v7Cartlist" . 然后,我需要根div class="v7Cartlist"

means 手段

data-id and data-ptype

how can I achieve this by jQuery? 我如何通过jQuery实现呢?

Right now I'm achieving this by this code: 现在,我可以通过以下代码实现此目的:

$('.delete').click(function(e) {
    delete_p = $(this);
    var id = delete_p.parent('cratRemove').parent('.col-xs-3').parent('.row').parent('.v7Cartlist').parent('.v7CartDetail').data('id'),
    var ptype = delete_p.parent('cratRemove').parent('.col-xs-3').parent('.row').parent('.v7Cartlist').parent('.v7CartDetail').data('ptype');
});

Is there any short code for this like 有没有像这样的短代码

var id = delete_p.closest('.v7Cartlist').data('id')
var ptype = delete_p.closest('.v7Cartlist').data('ptype'); 

You can use this script. 您可以使用此脚本。

$('.delete').click(function(e) {
    delete_p = $(this);
    var id = delete_p.parents('.v7Cartlist').data('id');
    var ptype = delete_p.parents('.v7Cartlist').data('ptype');
});

You can directly find the parent with class name. 您可以直接找到具有类名称的父级。 Use parents with class selector which will get the grandparent as well. 与类选择器一起使用parents ,这也会获得祖父母。

Here is a working codepen 这是一个工作中的codepen

You can use parents with last . 您可以对last使用parents

 $('.delete').click(function(e) { delete_p = $(this); var id = delete_p.parents('div').last().data('id'); console.log(id); var type= delete_p.parents('div').last().data('ptype'); console.log(type) }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="v7Cartlist" data-id="67" data-ptype="1"> <div class="row"> <div class="col-sm-3 col-xs-3"> <div class="cratRemove cartListOder"> <button class="btn-v7" type="submit"><span>♡</span> Move to Wishlist </button> <button class="btn-v7 delete" type="button"> <img src="../img/close.svg" alt="close"> Remove Item </button> </div> </div> <div class="col-sm-6 col-xs-9"> <div class="cartDetail"> <p class="courseName">Product 2</p> <p class="crsVendore">Exam </p> </div> </div> <div class="col-sm-3"> <div class="cartPrice"> <p>Price:</p> <p class="CrsPrice"> <small class="currency">INR</small> <span class="price">5,700</span> </p> </div> <div class="quantitySet"> <p>Quantity:</p> <div class="quantity-div"> <span class="quantity minus" data-o="m">–</span> <span class="count">1</span> <span class="quantity plus" data-o="p">+</span> </div> </div> </div> </div> </div> </div> 

$('.delete').on( 'click', function() {
    var parentElm = $( this ).parents( 'div.v7Cartlist' );

    console.log( parentElm.data( 'id' ) );
    console.log( parentElm.data( 'ptype' ) )
} );

set same data-id to button also like. 设置相同的数据ID到按钮也一样。

<button class="btn-v7 delete" type="button" data-id="66" ptype="1"> <img src="../img/close.svg" alt="close"> Remove Item </button>


var id = $(this).data('id');
var ptype = $(this).data('ptype');

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

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