4

こんにちは、私はショッピング カート用のこのコードに取り組んでいます

$('.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を表示しています

どんな助けでも大歓迎です。ありがとう

4

4 に答える 4

2

これはうまくいくはずです:

//compares the parent() HTMLElement (not the jQuery object)
if ( $(this).parent().get(0) == $('input.cartLevelChecked:checked').parent().get(0) ) {
     $(".selectPlan").show();
}
于 2010-10-07T07:46:36.927 に答える
0

正しくクエリしたを、チェックボックスの最も近いli親のIDと比較する必要がありlevelListIDます。これは、同じ方法でクエリする必要があります。

if (levelListID === $('#' + checkBoxID).closest('li').attr('id')) {
    ...
}
于 2010-10-07T07:54:18.460 に答える
0

親がcartIDとcheckBoxIDの両方の直接の親である場合、これは機能するはずです。

if($('#'+cartID).parent().attr(id) == levelListID && $('#'+checkboxID).parent().attr(id) == levelListID ) {
    $(".selectPlan").show();
}
于 2010-10-07T07:45:42.000 に答える
0

次のように、<li>親に移動して、チェックされた要素がそこに存在するかどうかを確認できます。

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

これを使用.closest()して親に移動し、を使用<li>してチェックボックスを探します.find()。次に、.lengthが 0 ( true) ではないことを確認しています。これは、チェックされていることがわかったことを意味します。

于 2010-10-07T09:33:53.077 に答える