0

所以,我在一个 CMS 中工作,我有自定义代码来选择从计算年龄得出的资金水平。此代码适用于多种形式,并且可以正常工作,除非我无法控制货币级别的值或 id。表格与表格之间的层次结构保持不变,捐赠级别标签容器也是如此,但是随着每次新的迭代,id 和值都会更改为新的 5 位数字。

<div class="donation-levels">
  <div class="donation-level-container">
    <div class="form-content">
      <div class="donation-level-input-container form-input">
        <div class="donation-level-label-input-container">
          <input type="radio" name="level_installmentexpanded" id="level_installmentexpanded16025"
value="16025"/>
        </div>
        <label for="level_installmentexpanded16025" onclick="">
        <div class="donation-level-amount-container"> $250.00 </div>
        <div class="donation-level-label-container"> Age 40 and under </div>
        </label>
      </div>
      <input type="hidden" name="level_installmentexpandedsubmit" id="level_installment_16025expandedsubmit" value="true" />
    </div>
  </div>
  <div class="donation-level-container">
    <div class="form-content">
      <div class="donation-level-input-container form-input">
        <div class="donation-level-label-input-container">
          <input type="radio" name="level_installmentexpanded" id="level_installmentexpanded16022"
value="16022"/>
        </div>
        <label for="level_installmentexpanded16022" onclick="">
        <div class="donation-level-amount-container"> $230.00 </div>
        <div class="donation-level-label-container"> Age 41-60 </div>
        </label>
      </div>
      <input type="hidden" name="level_installmentexpandedsubmit" id="level_installment_16022expandedsubmit" value="true" />
    </div>
  </div>
  <div class="donation-level-container">
    <div class="form-content">
      <div class="donation-level-input-container form-input">
        <div class="donation-level-label-input-container">
          <input type="radio" name="level_installmentexpanded" id="level_installmentexpanded16021"
value="16021"/>
        </div>
        <label for="level_installmentexpanded16021" onclick="">
        <div class="donation-level-amount-container"> $180.00 </div>
        <div class="donation-level-label-container"> Age 61-70 </div>
        </label>
      </div>
      <input type="hidden" name="level_installmentexpandedsubmit" id="level_installment_16021expandedsubmit" value="true" />
    </div>
  </div>
  <div class="donation-level-container">
    <div class="form-content">
      <div class="donation-level-input-container form-input">
        <div class="donation-level-label-input-container">
          <input type="radio" name="level_installmentexpanded" id="level_installmentexpanded16026"
value="16026"/>
        </div>
        <label for="level_installmentexpanded16026" onclick="">
        <div class="donation-level-amount-container"> $140.00 </div>
        <div class="donation-level-label-container"> Age 71-79 </div>
        </label>
      </div>
      <input type="hidden" name="level_installmentexpandedsubmit" id="level_installment_16026expandedsubmit" value="true" />
    </div>
  </div>
</div>
</div>

使用相对选择器或其他一些巫术,我可以设置一种动态选择它们的方法,而不必在每次将 ID 应用于新表单时都更改它?

4

6 回答 6

0

您可以找到单选按钮:

对于已检查的收音机:

// Direct access
jQuery(':radio:checked')

// or by targeting a parent
jQuery('#a_form').find(':radio:checked');
// or
jQuery('#a_form').find(':radio').each(function(){
  if($(this).is(':checked')) {
   // Do for checked
  } else {
   // other else
  }
})

// or directly find unchecked radio
jQuery(':radio:not(:checked)').each(function(){
  var t = $(this);
})
于 2013-11-06T15:52:25.560 回答
0

按名称或值选择:

 $("input[name=" + rbtname + "][value=" + yourVal + "]").attr('checked', 'checked');
于 2013-11-06T15:42:11.437 回答
0

您可以通过以下方式获取所有收音机:

$('input[type="radio"]')

或按名称

 $('input[name="level_installmentexpanded"]')

检查:

$('input[name="level_installmentexpanded"]:checked')
于 2013-11-06T15:44:58.280 回答
0

好吧,好吧,你们中的大多数人似乎都忽略了我的问题的先决条件。最终对我有用的方法如下。

因为我使用的是 jQuery,所以我使用:nth-childCSS 选择器来单独选择每一个,因为它是通过 jQuery 实现的,所以它可以跨浏览器工作。我确实喜欢检查第二个输入:

     $j("div.donation-levels div:nth-child(2) div div input").prop('checked',true);

我注意到我似乎遗漏了一个 div (尽管通过后代选择它仍然有效),因为它实际上不适用于我的第一个,为此我使用了:

     $j("div.donation-levels div:first-child div div div input").prop('checked',true);

具有更具体的层次结构和:first-child选择器。

于 2013-11-08T19:05:08.200 回答
0

您可以按类 $('.class_name')、标签 $('tag_name')、属性名称 $('[attribute]')、属性值 $('[attr=""]') 和组合进行选择其中。看看jQuery 文档

于 2013-11-06T15:47:02.107 回答
0

下面的代码可以帮助你,

$('.donation-level-label-input-container input[type="radio"]').each(function(){
    console.log($(this));
});

或者只是喜欢,

$('input[type="radio"]').each(function(){
    console.log($(this));
});
于 2013-11-06T15:40:22.863 回答