如何检查两个元素/div 是否属于同一父级?

发布于 2024-09-26 14:36:50 字数 565 浏览 6 评论 0原文

您好,我正在为购物车编写这段代码

$('.addtoCart').click(function() {

    //get button id      
    var cartID = $(this).attr("id"); 

    //get check box id   
    var checkBoxID = $('input.cartLevelChecked:checked').attr("id");

    //get parent id
    var levelListID = $(this).closest('li').attr("id");

    if(('#'+cartID && '#'+checkBoxID).parent('#'+levelListID)){
        $(".selectPlan").show();
    }

    //alert(/*cartID + checkBoxID +*/ levelListID);
});

基本上我正在检查用户选中的复选框和他们单击的按钮是否属于同一个父级,然后显示一个 div

任何帮助将不胜感激。谢谢

Hi I am working on this piece of code for a shopping cart

$('.addtoCart').click(function() {

    //get button id      
    var cartID = $(this).attr("id"); 

    //get check box id   
    var checkBoxID = $('input.cartLevelChecked:checked').attr("id");

    //get parent id
    var levelListID = $(this).closest('li').attr("id");

    if(('#'+cartID && '#'+checkBoxID).parent('#'+levelListID)){
        $(".selectPlan").show();
    }

    //alert(/*cartID + checkBoxID +*/ levelListID);
});

Basically I'm checking to see if the check-box the user checked and button they clicked on belongs to the same parent then show a div

any help would be greatly appreciated. thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

辞旧 2024-10-03 14:36:50

这应该有效:

//compares the parent() HTMLElement (not the jQuery object)
if ( $(this).parent().get(0) == $('input.cartLevelChecked:checked').parent().get(0) ) {
     $(".selectPlan").show();
}

This should work:

//compares the parent() HTMLElement (not the jQuery object)
if ( $(this).parent().get(0) == $('input.cartLevelChecked:checked').parent().get(0) ) {
     $(".selectPlan").show();
}
Oo萌小芽oO 2024-10-03 14:36:50

您需要将正确查询的 levelListID 与复选框最接近的 li 父级的 id 进行比较,您应该以相同的方式查询:

if (levelListID === $('#' + checkBoxID).closest('li').attr('id')) {
    ...
}

You need to compare levelListID, which you correctly queried, to the id of the checkbox's closest li parent, which you should query the same way:

if (levelListID === $('#' + checkBoxID).closest('li').attr('id')) {
    ...
}
帅气尐潴 2024-10-03 14:36:50

你就快到了,如果父级是 cartID 和 checkBoxID 的直接父级,那么这应该可以工作:

if($('#'+cartID).parent().attr(id) == levelListID && $('#'+checkboxID).parent().attr(id) == levelListID ) {
    $(".selectPlan").show();
}

you were almost there, this should work if the parent is the immediate parent of both cartID and checkBoxID:

if($('#'+cartID).parent().attr(id) == levelListID && $('#'+checkboxID).parent().attr(id) == levelListID ) {
    $(".selectPlan").show();
}
绿萝 2024-10-03 14:36:50

您可以转到

  • 父级并查看其中是否存在选中的元素,如下所示:
  • $('.addtoCart').click(function() {
      if($(this).closest('li').find('input.cartLevelChecked:checked').length) {
        //yes we're in the same parent
      }
    });
    

    这使用 .closest() 转到父级

  • 然后使用 .find()。然后我们只是检查 .length 是否不为 0 ( true) 这意味着它发现了一个检查。
  • You can just go up to the <li> parent and see if the checked element exists in there, like this:

    $('.addtoCart').click(function() {
      if($(this).closest('li').find('input.cartLevelChecked:checked').length) {
        //yes we're in the same parent
      }
    });
    

    This uses .closest() to go the parent <li> then looks inside for the checkbox using .find(). Then we're just checking that the .length isn't 0 (true) which means it found one checked.

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文