检查不同div类

时间:2018-01-29 11:00:51

标签: javascript jquery html css

我一直试图通过循环查看网页上的某些单选按钮并尝试在单选按钮的每个“组”中选择第二个值,但我对它的语法感到很困惑。 / p>

我在网上寻找文档的所有地方都有单独的单选按钮上的“名称”变量,以便每个组都可以轻松访问,但在这个网站上并非如此,我是陷入困境似乎是一个简单的解决方案。

我一直试图从每个组中选中“radX_ExtendedHold”单选按钮,以便禁用页面底部的“按钮页脚类”,直到用户从任何一组无线电中选择任何不同的值纽扣。这是它的HTML代码(这不是我的网站,我无法编辑HTML来更改名称或任何内容的值):

<div class="subsRenewEntry">
  <div class="seriesOptions" data-default="Renewed">
    <span>
                            <input id="rad0_Renewed" type="radio" name="action_f5d61c45-69fc-e711-8d62-000c2979ba39" value="Renewed"  />
                            <label for="rad0_Renewed" >Yes, I want to renew now</label>                            
                        </span>

    <span>
                            <input id="rad0_ExtendedHold" type="radio" name="action_f5d61c45-69fc-e711-8d62-000c2979ba39" value="ExtendedHold"  />
                            <label for="rad0_ExtendedHold" >Not sure, keep my seat for the time being</label>
                        </span>
  </div>
</div>

<div class="subsRenewEntry">
  <div class="seriesOptions" data-default="Renewed">
    <span>
                            <input id="rad1_Renewed" type="radio" name="action_21e7930b-31fd-e711-8d62-000c2979ba39" value="Renewed"  />
                            <label for="rad1_Renewed" >Yes, I want to renew now</label>
                        </span>

    <span>
                            <input id="rad1_ExtendedHold" type="radio" name="action_21e7930b-31fd-e711-8d62-000c2979ba39" value="ExtendedHold"  />
                            <label for="rad1_ExtendedHold" >Not sure, keep my seat for the time being</label>
                        </span>
  </div>
</div>

<div class="subsRenewEntry">
  <div class="seriesOptions" data-default="Renewed">
    <span>
                            <input id="rad2_Renewed" type="radio" name="action_d1b6d498-99da-e711-8d62-000c2979ba39" value="Renewed"  />
                            <label for="rad2_Renewed" >Yes, I want to renew now</label>                            
                        </span>

    <span>
                            <input id="rad2_ExtendedHold" type="radio" name="action_d1b6d498-99da-e711-8d62-000c2979ba39" value="ExtendedHold"  />
                            <label for="rad2_ExtendedHold" >Not sure, keep my seat for the time being</label>
                        </span>
  </div>
</div>

<div class="subsRenewEntry">
  <div class="seriesOptions" data-default="Renewed">
    <span>
                            <input id="rad3_Renewed" type="radio" name="action_3fe94663-32fd-e711-8d62-000c2979ba39" value="Renewed"  />
                            <label for="rad3_Renewed" >Yes, I want to renew now</label>                            
                        </span>

    <span>
                            <input id="rad3_ExtendedHold" type="radio" name="action_3fe94663-32fd-e711-8d62-000c2979ba39" value="ExtendedHold"  />
                            <label for="rad3_ExtendedHold" >Not sure, keep my seat for the time being</label>
                        </span>
  </div>
</div>

<div class="subsRenewEntry">
  <div class="seriesOptions" data-default="Renewed">
    <span>
                            <input id="rad4_Renewed" type="radio" name="action_f6fe26d5-32fd-e711-8d62-000c2979ba39" value="Renewed"  />
                            <label for="rad4_Renewed" >Yes, I want to renew now</label>                           
                        </span>

    <span>
                            <input id="rad4_ExtendedHold" type="radio" name="action_f6fe26d5-32fd-e711-8d62-000c2979ba39" value="ExtendedHold"  />
                            <label for="rad4_ExtendedHold" >Not sure, keep my seat for the time being</label>
                        </span>
  </div>
</div>

<div class="buttonsFooter">
  <button type="submit" class="small_button_a">
            Proceed
        </button>
</div>

我尝试使用以下代码获取“subsRenewEntry”类中的所有元素:

$( ".subsRenewEntry" ).each(function( index ) {
  console.log( index + ": " + $( this ).text() );
});

这似乎返回了我需要的正确组。但它只是试图检查每个组中的第二个元素。

我尝试了各种方法来尝试解决问题,如下所示:

$( "rad" + index + "_ExtendedHold").filter('[value="ExtendedHold"]').prop('checked', true);

$('.screen-RenewSubscriptions_aspx').find('option[value="ExtendedHold"]').prop('checked', true);

但它们都不起作用。

我也尝试了一种适用于单个元素的不同方法,这对我来说并不太有用,因为我需要动态分配按钮,以便可以在任何X页面上运行任意X个单选按钮组。

无论如何,代码如下:

$('input:radio[name="action_f5d61c45-69fc-e711-8d62-000c2979ba39"]').filter('[value="ExtendedHold"]').attr('checked', true);

但是这只适用于其中一个按钮(显然因为名称只相当于单选按钮的名称之一)。

我对javascript / jQuery很新,而且访问这些变量的语法似乎让我非常重视,这似乎是一个非常简单的解决方案。如果有人能指出我正确的方向,我会非常感激。我不希望有人为我做代码,只是指出我出错的地方以及如何改变我对它的看法。

2 个答案:

答案 0 :(得分:0)

您可以阅读Selectors,我认为这有助于您获得所有.action...

$("input[type='radio'][name^=action_]")

$('input:radio[name^="action_"]')

注意:从jQuery 1.6开始,您需要.prop()代替.attr()才能查看广播 $(radioButton).prop("checked", true);

$("input[type='radio'][name^=action_]").filter('[value="ExtendedHold"]').attr('checked', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="subsRenewEntry">
  <div class="seriesOptions" data-default="Renewed">
    <span>
                            <input id="rad0_Renewed" type="radio" name="action_f5d61c45-69fc-e711-8d62-000c2979ba39" value="Renewed"  />
                            <label for="rad0_Renewed" >Yes, I want to renew now</label>                            
                        </span>

    <span>
                            <input id="rad0_ExtendedHold" type="radio" name="action_f5d61c45-69fc-e711-8d62-000c2979ba39" value="ExtendedHold"  />
                            <label for="rad0_ExtendedHold" >Not sure, keep my seat for the time being</label>
                        </span>
  </div>
</div>

<div class="subsRenewEntry">
  <div class="seriesOptions" data-default="Renewed">
    <span>
                            <input id="rad1_Renewed" type="radio" name="action_21e7930b-31fd-e711-8d62-000c2979ba39" value="Renewed"  />
                            <label for="rad1_Renewed" >Yes, I want to renew now</label>
                        </span>

    <span>
                            <input id="rad1_ExtendedHold" type="radio" name="action_21e7930b-31fd-e711-8d62-000c2979ba39" value="ExtendedHold"  />
                            <label for="rad1_ExtendedHold" >Not sure, keep my seat for the time being</label>
                        </span>
  </div>
</div>

<div class="subsRenewEntry">
  <div class="seriesOptions" data-default="Renewed">
    <span>
                            <input id="rad2_Renewed" type="radio" name="action_d1b6d498-99da-e711-8d62-000c2979ba39" value="Renewed"  />
                            <label for="rad2_Renewed" >Yes, I want to renew now</label>                            
                        </span>

    <span>
                            <input id="rad2_ExtendedHold" type="radio" name="action_d1b6d498-99da-e711-8d62-000c2979ba39" value="ExtendedHold"  />
                            <label for="rad2_ExtendedHold" >Not sure, keep my seat for the time being</label>
                        </span>
  </div>
</div>

<div class="subsRenewEntry">
  <div class="seriesOptions" data-default="Renewed">
    <span>
                            <input id="rad3_Renewed" type="radio" name="action_3fe94663-32fd-e711-8d62-000c2979ba39" value="Renewed"  />
                            <label for="rad3_Renewed" >Yes, I want to renew now</label>                            
                        </span>

    <span>
                            <input id="rad3_ExtendedHold" type="radio" name="action_3fe94663-32fd-e711-8d62-000c2979ba39" value="ExtendedHold"  />
                            <label for="rad3_ExtendedHold" >Not sure, keep my seat for the time being</label>
                        </span>
  </div>
</div>

<div class="subsRenewEntry">
  <div class="seriesOptions" data-default="Renewed">
    <span>
                            <input id="rad4_Renewed" type="radio" name="action_f6fe26d5-32fd-e711-8d62-000c2979ba39" value="Renewed"  />
                            <label for="rad4_Renewed" >Yes, I want to renew now</label>                           
                        </span>

    <span>
                            <input id="rad4_ExtendedHold" type="radio" name="action_f6fe26d5-32fd-e711-8d62-000c2979ba39" value="ExtendedHold"  />
                            <label for="rad4_ExtendedHold" >Not sure, keep my seat for the time being</label>
                        </span>
  </div>
</div>

<div class="buttonsFooter">
  <button type="submit" class="small_button_a">
            Proceed
        </button>
</div>

答案 1 :(得分:0)

如果您想要检查每个第二个复选框值,请尝试以下jquery代码。只有这段代码可以帮助你做些什么。你想要不同的结果,请在这里评论,以便我可以尝试解决它们。

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="subsRenewEntry">                    
                    <div class="seriesOptions" data-default="Renewed">
                        <span>
                            <input id="rad0_Renewed" type="radio" name="action_f5d61c45-69fc-e711-8d62-000c2979ba39" value="Renewed"  />
                            <label for="rad0_Renewed" >Yes, I want to renew now</label>                            
                        </span>

                        <span>
                            <input id="rad0_ExtendedHold" type="radio" name="action_f5d61c45-69fc-e711-8d62-000c2979ba39" value="ExtendedHold"  />
                            <label for="rad0_ExtendedHold" >Not sure, keep my seat for the time being</label>
                        </span>
                    </div>
                </div>

                <div class="subsRenewEntry">
                    <div class="seriesOptions" data-default="Renewed">
                        <span>
                            <input id="rad1_Renewed" type="radio" name="action_21e7930b-31fd-e711-8d62-000c2979ba39" value="Renewed"  />
                            <label for="rad1_Renewed" >Yes, I want to renew now</label>
                        </span>

                        <span>
                            <input id="rad1_ExtendedHold" type="radio" name="action_21e7930b-31fd-e711-8d62-000c2979ba39" value="ExtendedHold"  />
                            <label for="rad1_ExtendedHold" >Not sure, keep my seat for the time being</label>
                        </span>
                    </div>
                </div>

                <div class="subsRenewEntry">
                    <div class="seriesOptions" data-default="Renewed">
                        <span>
                            <input id="rad2_Renewed" type="radio" name="action_d1b6d498-99da-e711-8d62-000c2979ba39" value="Renewed"  />
                            <label for="rad2_Renewed" >Yes, I want to renew now</label>                            
                        </span>

                        <span>
                            <input id="rad2_ExtendedHold" type="radio" name="action_d1b6d498-99da-e711-8d62-000c2979ba39" value="ExtendedHold"  />
                            <label for="rad2_ExtendedHold" >Not sure, keep my seat for the time being</label>
                        </span>
                    </div>
                </div>

                <div class="subsRenewEntry">
                    <div class="seriesOptions" data-default="Renewed">
                        <span>
                            <input id="rad3_Renewed" type="radio" name="action_3fe94663-32fd-e711-8d62-000c2979ba39" value="Renewed"  />
                            <label for="rad3_Renewed" >Yes, I want to renew now</label>                            
                        </span>

                        <span>
                            <input id="rad3_ExtendedHold" type="radio" name="action_3fe94663-32fd-e711-8d62-000c2979ba39" value="ExtendedHold"  />
                            <label for="rad3_ExtendedHold" >Not sure, keep my seat for the time being</label>
                        </span>
                    </div>
                </div>

                <div class="subsRenewEntry">
                    <div class="seriesOptions" data-default="Renewed">
                        <span>
                            <input id="rad4_Renewed" type="radio" name="action_f6fe26d5-32fd-e711-8d62-000c2979ba39" value="Renewed"  />
                            <label for="rad4_Renewed" >Yes, I want to renew now</label>                           
                        </span>

                        <span>
                            <input id="rad4_ExtendedHold" type="radio" name="action_f6fe26d5-32fd-e711-8d62-000c2979ba39" value="ExtendedHold"  />
                            <label for="rad4_ExtendedHold" >Not sure, keep my seat for the time being</label>
                        </span>
                    </div>
                </div>

        <div class="buttonsFooter">
        <button type="submit" class="small_button_a">
            Proceed
        </button>
    </div>

<script>
$(document).ready(function(){
    var myarray = [];
    $( ".subsRenewEntry .seriesOptions span:nth-child(2) input[type=radio]").prop( "checked", true );
    var true_val= $('.subsRenewEntry .seriesOptions span:nth-child(2) input[type=radio]').is(':checked');

    if(true_val==true) { 
            $('.buttonsFooter').hide();
    }   
    $(".subsRenewEntry .seriesOptions span input[type=radio]").change(function(){
         $(".subsRenewEntry .seriesOptions span input[type=radio]:checked").each(function(){
            var var_renewd= $(this).val();
            if(var_renewd=="Renewed"){
                $('.buttonsFooter').show();
            }
             myarray.push(var_renewd);              
         });            
        if(jQuery.inArray("Renewed", myarray) !== -1){
            $('.buttonsFooter').show();
        }else{
            $('.buttonsFooter').hide();
        }                       
        myarray=[];
    }); 
});     

该代码将为您提供以下网址输出。 https://www.screencast.com/t/uTBt2FtCFKkv