Javascript 如何使用jquery获取锚url末尾的数字?
我的锚定标记位于表行内,并具有以下形式,其中url末尾的数字可以是任何数字1,9100、1049,。。。等等 单击锚时,如何获取url末尾的数字?我甚至无法让以下各项发挥作用:Javascript 如何使用jquery获取锚url末尾的数字?,javascript,jquery,html,anchor,href,Javascript,Jquery,Html,Anchor,Href,我的锚定标记位于表行内,并具有以下形式,其中url末尾的数字可以是任何数字1,9100、1049,。。。等等 单击锚时,如何获取url末尾的数字?我甚至无法让以下各项发挥作用: $('table').on('click', 'a', function (event) { alert($(this).attr('href').val()); }); $('table')。在('click','a',函数(事件){ 警报($(this.attr('href').val()); }); ..
$('table').on('click', 'a', function (event) {
alert($(this).attr('href').val());
});
$('table')。在('click','a',函数(事件){
警报($(this.attr('href').val());
});代码>
...
...
...
...
...
...
首先,您需要在查询选择器中的标记说明符周围加引号。您甚至可以将查询选择器更改为单个字符串(table a
,而不是table
,a
):
其次,使用split
函数将url字符串转换为基于字符“/”
的数组:
工作示例:您可以使用.slice()
,.lastIndexOf()
。注意,如果未定义a
,则在委托事件中缺少围绕选择器“a”
的路径
$(“表”)。在(“单击”、“a”上,函数(事件){
event.preventDefault();
警报(this.href.slice(this.href.lastIndexOf(“/”)+1));
});代码>
... ...
使用正则表达式,可以选择字符串的一部分。写入正则表达式以运行它并获得结果
$("table").on('click', "a", function(event){
alert(this.href.match(/\d+$/)[0]);
});
$(“表”)。在('click',a',函数(e){
e、 预防默认值();
console.log(this.href.match(/\d+$/)[0]);
});代码>
...
...
...
...
...
...
要提取字符串末尾的数字,可以使用RegEx\d+$
<代码>\d+
将匹配一个或多个数字,$
-带锚点的端点将在行尾进行匹配。所以,这将匹配字符串末尾的数字
$(this).attr('href').match(/\d+$/)[0]
match()
将匹配数字并返回一个数组。要从数组的第0个索引中获取数字,请使用[0]
。正如其他答案中所建议的那样,this.href
也可用于获取所单击元素的href
属性的值。请注意,事件处理程序中的此
指的是发生事件的元素
代码中有一些问题
$(table).on('click', a , function (event) {
alert($(this).attr('href').val());
});
由于我没有看到给定代码中定义的table
和a
变量,我假设您正在尝试将它们用作选择器。$(table)
应该是$('table')
而a
应该是$('a')
$(this).attr('href')
将返回href
属性的值。因此,无需对其调用val()
val()
用于获取元素值(即元素上value
属性的值)
锚定单击将重定向到给定的URL。要停止此操作,可以使用event.preventDefault()
或在事件处理程序末尾添加return false
$('table')。在('click','a',函数(e)上{
console.log(this.href.match(/\d+$/)[0]);
e、 预防默认值();
});代码>
$(this.attr('href').match(/\d+$/)[0]
@Tushar您应该写一个实际的答案。请不要用这些评论。我错了。处理完毕。感谢您指出我的错误并提供jquery选择器其他方面的一些详细信息。
$(this).attr('href').match(/\d+$/)[0]
$(table).on('click', a , function (event) {
alert($(this).attr('href').val());
});