我的html href数量如下所示:
<a id="link1" href="http://www.google.com">USA </a>
<a id="link2" href="http://www.google.com.au">AU </a>
<a id="link2" href="http://www.google.com.nz">NZ </a>
我的jquery如下:
<script>
$("a").click(function () {
var link = $('a').attr('href');
alert(link);
dosomethingforlink(link);
});
</script>
基本上,只需点击一下上面的函数,我就想获得<a>
标签的href值(点击它)并为每个链接做一些不同的事情。
或者我是否需要为每个ID创建(#id).click
函数?
如果可以使用Jquery进行上述操作,有人可以帮助我吗?
答案 0 :(得分:4)
试试这个:
$("a").click(function () {
var link = $(this).attr('href');
alert(link);
dosomethingforlink(link);
});
我已将$('a')
更改为$(this)
,因为$('a')
将获得所有锚点。$(this)
只能获取当前点击的广告。
Here is a quick working demo ..您将看到最后一行是event.preventDefault()
- 它会阻止默认操作(即href之后)发生并允许您的函数执行。 event.preventDefault()
docs here
答案 1 :(得分:1)
这样的事情可能是
<script>
$("a").click(function (event) {
event.preventDefault();
var link = $(this).attr('href');
alert(link);
dosomethingforlink(link);
});
</script>
添加:
使用event.preventDefault()从导航到锚标记中的网址
答案 2 :(得分:1)
$("a").click(function (evt) {
evt.preventDefault();
var link = $(this).attr('href');
alert(link);
dosomethingforlink(link);
});
您应该使用preventDefault()
否则您将无法执行更多代码(点击您的链接并立即更改页面)
答案 3 :(得分:0)
ID应该是唯一的,因此不要在多个元素上使用相同的ID。
这样的事情可能是:
$("a[id^='link']").on('click', function (e){
e.preventDefault();
switch ($(this).attr('href')) {
case 'http://www.google.com' :
//do something
break;
case 'http://www.google.com.au' :
//do something
break;
default:
//do something else
....etc
}
});