如何从最近的列表项中提取 "href" 属性值

How to extract the "href" attribute value from within the closest list item

我的网站有一列带有 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 的每个变体以查看用户是否选中了它。如果选中了特定的 keepbox ,我想在该特定的 li.

中提取 href 属性的值

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

我正在使用以下脚本成功识别选中的 keepbox,但它在警告框中返回 "undefined"。我猜我没有正确抓住属性。有任何想法吗?谢谢!

 <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>

两期:

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");
$(".kboxes").each(function(){
 if ($(this).prop('checked')) {
  var addressValue = $(this).closest("a").attr("href");
  alert(addressValue);
  return false;
 }
});