javascript - 如何使用 jquery 获取 anchor url 末尾的数字?

标签 javascript jquery html anchor href

我的 anchor 标记位于表格行中,并且具有以下形式,其中 url 末尾的数字可以是任何数字 1,9,100、1049 等。

单击 anchor 时,如何获取 url 末尾的数字?我什至无法让以下工作。:

$('table').on('click', 'a', function (event) {
  alert($(this).attr('href').val());
});

$('table').on('click', 'a', function (event) {
  alert($(this).attr('href').val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>
      <a href="/ControllerName/ActionName/1">Order Detail</a>
    </td>
  </tr>
  <tr>
    <td>
      <a href="/ControllerName/ActionName/2">Order Detail</a>
    </td>
  </tr>
  ...
  ...
  <tr>
    <td>
      <a href="/ControllerName/ActionName/100">Order Detail</a>
    </td>
  </tr>
  ...
  ...
  <tr>
    <td>
      <a href="/ControllerName/ActionName/149">Order Detail</a>
    </td>
  </tr>
  ...
  ...
</table>

最佳答案

要提取字符串末尾的数字,可以使用 RegEx \d+$\d+ 将匹配一位或多位数字,而 $-ends with anchor 将匹配行尾。因此,这将匹配字符串末尾的数字。

$(this).attr('href').match(/\d+$/)[0]

match() 将匹配数字并返回一个数组。要从数组的第零个索引获取数字,使用 [0]。正如其他答案中所建议的那样, this.href 也可用于获取被单击元素的 href 属性的值。请注意,事件处理程序中的 this 指的是发生事件的元素。


代码中有一些问题

$(table).on('click', a , function (event) {
   alert($(this).attr('href').val());
});

因为我没有在给定的代码中看到定义的 tablea 变量,所以我假设您正在尝试将它们用作选择器。$(table) 应该是 $('table')a 应该是 $('a')

$(this).attr('href') 将返回 href 属性的值。因此,无需对其调用 val()val() 用于获取元素值(即元素上的 value 属性的值)。

anchor 击将重定向到给定的 URL。要停止这种情况,您可以使用 event.preventDefault() 或在事件处理程序的末尾添加 return false

$('table').on('click', 'a', function(e) {
  console.log(this.href.match(/\d+$/)[0]);
  
  e.preventDefault();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>
      <a href="/ControllerName/ActionName/1">Order Detail</a>
    </td>
  </tr>
  <tr>
    <td>
      <a href="/ControllerName/ActionName/2">Order Detail</a>
    </td>
  </tr>
  <tr>
    <td>
      <a href="/ControllerName/ActionName/100">Order Detail</a>
    </td>
  </tr>
  <tr>
    <td>
      <a href="/ControllerName/ActionName/149">Order Detail</a>
    </td>
  </tr>
</table>

关于javascript - 如何使用 jquery 获取 anchor url 末尾的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42016133/

相关文章:

javascript - 我如何找到突出显示的字符串出现了多少次,以及它出现在哪一次?

javascript - 防止空白输入不起作用

javascript - Cordova (PhoneGap) 在 jQuery Mobile 应用程序的每个页面上重新初始化

php - html/php 文件 + css 内联问题

html - Angular 5,HTML,复选框上的 bool 值被选中

javascript - 在定时器上调用 Javascript 匿名函数方法

javascript - PHP -(如果 INSERT true)回显消息禁用/关闭 .js 文件中的 jQuery 功能

jquery - 在模拟点击时发送参数

JavaScript 函数不适用于 anchor 标记点击

php - Google reCAPTCHA g-recaptcha-response 在 PHP 中没有值(value)