0

我有以下 HTML:

<form class="pricing-downloads-right pricing-last-form" action="">
    <div class="pricing-levels-top-2">
        <input class="pricing-single-level" type="radio" name="sex" value="male"><strong>Single Level Download $49.95:</strong> Choose a single level (1 to 7) and receive access to all lessons, PDFs and review audio for that level, plus 30 days of online access ($80 value). Email us your level choice after purchase.<br>
        <input class="pricing-3-level-download" type="radio" name="sex" value="male"><strong>3 Level Download $99.95:</strong> Choose any 3 levels (1 to 7) and receive access to all lessons, PDFs and review audio for those levels, plus 60 days of online access ($190 value). Email us your level choices after purchase.<br>
        <input class="pricing-all-access-package" type="radio" name="sex" value="male"><strong>All Access Package $199.9:</strong> Receive access to all lessons, PDFs and review audio for all 7 levels, plus 90 days of online access ($300 value).<br>
    </div>
    <div class="pricing-levels-2">
        <p>Which level would you like? (Click all that apply)</p>
        <input type="checkbox" name="vehicle" value="Bike">Level 1<br>
        <input type="checkbox" name="vehicle" value="Bike">Level 2<br>
        <input type="checkbox" name="vehicle" value="Bike">Level 3<br>
        <input type="checkbox" name="vehicle" value="Bike">Level 4<br>
        <input type="checkbox" name="vehicle" value="Bike">Level 5<br>
        <input type="checkbox" name="vehicle" value="Bike">Level 6<br>
        <input type="checkbox" name="vehicle" value="Bike">Level 7<br>
    </div>
</form>

和 jQuery:

jQuery('.pricing-downloads-right input[type=radio]').on('change', function(){
    if(jQuery('.pricing-levels-top-2 input.pricing-single-level:checked').length > 0){                 
          //since you don't want to target by name
          jQuery('.pricing-levels-2').show();
    }
});

jQuery('.pricing-downloads-right input[type=radio]').on('change', function(){
    if(jQuery('.pricing-levels-top-2 input.pricing-single-level:not(:checked)').lenght > 0){ 
           //since you don't want to target by name
           jQuery('.pricing-levels-2').hide();
    }
});

所以我想在选中.pricing-levels-2时显示input.pricing-single-level并在未选中时隐藏。

现在在选中.pricing-levels-2时显示,input.pricing-single-level但在未选中时不会隐藏。

我做错了什么?

4

2 回答 2

4

尝试

jQuery('.pricing-downloads-right input[type=radio]').on('change', function () {
    jQuery('.pricing-levels-2').toggle(jQuery('.pricing-levels-top-2 input.pricing-single-level:checked').length > 0);
}).change();

演示:小提琴

一种可能的更好方法

jQuery(function ($) {
    var $pl2 = $('.pricing-levels-2');
    var $psl = $('.pricing-levels-top-2 input.pricing-single-level');

    $('.pricing-downloads-right input[type=radio]').on('change', function () {
        $pl2.toggle($psl.is(':checked')); // $ps1[0].checked
    }).change();

})

演示:小提琴

于 2013-09-25T05:31:17.540 回答
4

你拼错了length

if(jQuery('.pricing-levels-top-2 input.pricing-single-level:not(:checked)')
    .lenght > 0){

应该

if(jQuery('.pricing-levels-top-2 input.pricing-single-level:not(:checked)')
    .length > 0){
于 2013-09-25T05:31:36.233 回答