第一个声明后不能覆盖Javascript变量

我有一个功能可以根据选择的数量刷新页面:

prodName="doesn't matter, not directly $.ajax related"

function searchProduct() {
  var prodName = $("#admin-search-product").val().trim();
  var pagenumb = 1;
  $(".page-item").click(function() {
    pagenumb = $(this).children('.page-link').attr('value');
  });
  alert(pagenumb);
  if (prodName == "") {
    $.ajax({
      type: "POST",
      url: "admin_search_product.php",
      data: {
        search_prod: 0,
      },
      success: function(respond) {
        $("#admin_content").html(respond).show();
        $("#admin-search-product").focus().val('').val(prodName);
      }
    });
  } else {
    $.ajax({
      type: "POST",
      url: "admin_search_product.php",
      data: {
        search_prod: 1,
        searchName: prodName,
        pagenumb: pagenumb
      },
      success: function(respond) {
        $("#admin_content").html(respond).show();
        $("#admin-search-product").focus().val('').val(prodName);
      }
    });
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="admin-search-product">

<div class="page-item">
<input class="page-link">
</div>

<button onclick="searchProduct()">clickme</button>

一切正常,除非问题是即使代码“ pagenumb = $(this).children('。page-link')。attr('value');”,pagenumb变量仍保持为“ 1”。可以检索经过alert()函数测试的被点击页面的值,如果放在click函数中,则可以返回值“ 2”。

但是,如果我在click函数之外测试alert()函数,则表明pagenumb变量保持不变。我不知道为什么即使我能够接收它也不想更改接收的值。

评论