jquery .closest()返回undefined

时间:2014-05-14 03:32:27

标签: jquery

我不知道,错误在哪里。谁知道?

<div class="col">
 <input type="hidden" value="12" id="number">
  <button class="btn-green btn-big" id="confirm" style="width: 146px;margin-top:6px;">
   <i class="spritemedium pr10 mr5" style="border-right: 1px solid #fff"></i>
   Pesan
  </button>
</div>  

<script>
$("#confirm").click(function ()
{
    var a = $(this).closest("#number").val();
    alert(a);
}
</script>

单击按钮confirm时,它将返回undefined。我使用<script type="text/javascript" src="js/jquery-1.7.1.js"></script>是否正确?

2 个答案:

答案 0 :(得分:3)

.closest() 将遍历DOM树并匹配最近的祖先,在您的情况下#number输入是#confirm按钮的前一个兄弟,所以您需要使用 .prev()

var a = $(this).prev().val();

但是,id必须是唯一的,您只需使用:

var a = $("#number").val();

答案 1 :(得分:0)

您不能在此处使用.closest(),它会在其父级中找到控件。你应该在这里使用prev():

  <script>
 $("#confirm").click(function ()
 {
 var a = $(this).prev("input#number").val();
 alert(a);
 }
</script>