得到Ul的索引

时间:2014-08-05 12:55:43

标签: jquery html css

我的网页上有两个Ul标记。 这是我的代码

HTML:

<div id="accordion">
   <h3>Funeral</h3>
   <div>
    <ul>
      <li><input type="radio" name="rbPlanname" class="rbPlanname" /> Funeral Plan 1</li>
      <li><input type="radio" name="rbPlanname" class="rbPlanname" /> Funeral Plan 2</li>
      <li><input type="radio" name="rbPlanname" class="rbPlanname" /> Funeral Plan 3</li>
    </ul>
   </div>
   <h3>Disability</h3>
   <div>
    <ul>
      <li><input type="radio" name="rbPlanname" class="rbPlanname" /> Disability Plan 1</li>
      <li><input type="radio" name="rbPlanname" class="rbPlanname" /> Disability Plan 2</li>
      <li><input type="radio" name="rbPlanname" class="rbPlanname" /> Disability Plan 3</li>
     </ul>
   </div>
 </div>
 <table width="100%" style="margin-top:26px"> 

JS:

 var planName;
 $('#btnNextClaim').on('click', function () {
   $('.rbPlanname').each(function () {
       if ($(this).is(':checked')) {
         planName = $(this).closest('li').text();
         alert($(this).closest('ul').index());
       }
   });
 });

我想,当用户点击下一个按钮,然后我找到了哪个单选按钮被检查,据此,我想找到ul的索引。 假设我检查了第一个ul的单选按钮,那么它应该返回0。 这是我的小提琴

JsFiddle

2 个答案:

答案 0 :(得分:1)

试试这段代码:

$('#btnNextClaim').on('click', function () {
         $('.rbPlanname').each(function () {
         if ($(this).is(':checked')) {
             planName = $(this).closest('li').text();
             var $ul=$(this).closest('ul');
             alert($('ul').index($ul));
         }
     });
});

DEMO

EDIT-Caching $(this):

如果在我们的代码中频繁使用,我们应该缓存DOM元素:

$('#btnNextClaim').on('click', function () {
    $('.rbPlanname').each(function () {
        var $this=$(this);
        if ($this.is(':checked')) {
            planName = $this.closest('li').text();
            var $ul=$this.closest('ul');
            alert($('ul').index($ul));
        }
    });
});

答案 1 :(得分:0)

在您的index()方法中添加您要查找的索引类型。在您的情况下,它应该是ul

请参阅此http://jsfiddle.net/5awT9/3