当页面加载时,设置为所有单选按钮的id

时间:2015-07-23 01:53:47

标签: jquery

我有很多单选按钮组。我想将所有单选按钮id设置为父div的id +其自身值。因为单选按钮来自外部HTML,在某些情况下,我必须在一个页面中使用相同的按钮几次。我的代码示例如下所示,当您选择单选按钮时,其id和表单ID已正确设置。有没有办法在页面加载时自动进行,而不是基于选择?

<div id="x1" class="section">
  <form id="" class="myFormClass">
    <input id="" class="myRadio" name="someName-1" value="one">one
    <input id="" class="myRadio" name="someName-1" value="two">two
  </form>
</div>
<div id="x2" class="section">
  <form id="" class="myFormClass">
    <input id="" class="myRadio" name="someName-2" value="three">three
    <input id="" class="myRadio" name="someName-2" value="four">four
  </form>
</div>

<script>
  $(document).on('change', "input:radio", function(){
    var parentId = $(this).closest(".section").attr("id");
    var radioValue = this.value;
    var radioName = this.name;
    $(this).parent("form").attr("id", parentId + radioName + "Form") 
    $(this).attr("id", parentId + "-" + radioValue);
  })
</script>

让我再问一个问题。当我试图获得一些具有共同属性的元素时,我只能得到第一个元素。

var iNeedYou = $("input:radio[name='someName-1']").val();

返回&#34;一个&#34;。有办法搞定所有这些吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

使用$( document ).ready()(简称$(function())在加载页面时运行代码。 如果您想要单选按钮,请将输入设置为type='radio'

您的额外问题:您可以使用$('yourSelector').each(function(){选择多个元素。见例。

另请参阅示例中给出的ID(父div id +自己的值):

$(function() {
    $('input[type=radio]').each(function(){
        var parentId = $(this).closest(".section").attr("id");
        $(this).attr("id", parentId + $(this).val());        
    });
});

小提琴:http://jsfiddle.net/ddan/4nxhbw8s/1/