如何提取" href"属性值来自最近的列表项

时间:2015-04-07 02:32:24

标签: javascript jquery html checkbox href

我的网站有一列复选框,ID按顺序排列,如“keepbox1”,“keepbox2”等。每个复选框都位于一个列表项中,还有一个href属性,如下所示:

<li>
   <a href="http://iNeedThisUrl.com" class="describer">Title</a>
   <br>
   <input id="keepbox1" type="checkbox" class="kboxes" name="keepbox1"  />
   <label for="keepbox1">Keep</label>
   <div class="tinybox" alt="tinypic1" id="tinypic1" style="display:none;">  
      Content Here
   </div>
   </a>     
</li>

页面上还有一个元素用作按钮

<a><label class="getFiles" for="lightbox-two">Submit</label></a>

当用户点击此按钮时,我有一个脚本循环遍历keepbox的每个变体,以查看用户是否选中了它。如果选中某个特定的保管箱 ,我想在该特定li中提取href属性的值。

因此,如果用户从上面的演示代码中选中了keepbox1,我希望它能提醒“http://iNeedThisUrl.com”。

我正在使用以下脚本成功识别已检查的保留箱,但它在警告框中返回“未定义”。我猜我没有正确地抓住这个属性。有任何想法吗?谢谢!

 <script type="text/javascript">
        $(document).ready(function() {
            $('.getFiles').click(function() {
                for (i = 1; i <= 100; i++) 
                  {
                    if ($("#keepbox" + i).prop('checked')) 
                     {
               var addressValue = $("#tinypic" + i).closest("li").attr("href");
               alert(addressValue);
                     }
                   }
            }); 
        });
    </script>

2 个答案:

答案 0 :(得分:4)

两个问题:

1)你有关闭锚标记</a>而没有打开锚标记作为li中div的下一个兄弟。你需要删除它。

2)div元素#tinypic + n是锚元素的兄弟。你需要使用:

$("#tinypic" + i).siblings("a").attr("href");

$("#tinypic" + i).prevAll("a").attr("href");

$("#tinypic" + i).closest("li").find("a").attr("href");

答案 1 :(得分:1)

$(".kboxes").each(function(){
 if ($(this).prop('checked')) {
  var addressValue = $(this).closest("a").attr("href");
  alert(addressValue);
  return false;
 }
});
相关问题