访问锚属性和event.preventDefault()

时间:2013-10-17 20:17:04

标签: javascript jquery events preventdefault

我想捕获链接点击并存储在我的数据库中而不使用旋转栅门。当前代码

$( ".ads-box a" ).click(function( event ) {
  event.preventDefault();
  var href = $(this).find('a').attr('href');
  var id = $(this).find('a').attr('id')
  console.log(href);
  console.log(id);
  console.log(this);
});

<div class="ads-box" id="adbox-35"><a href="http://www.makeitrightnola.org" id="ad-35" target="_blank"><img src="/g/shows/sidebar/83172823_ad_image.png" alt="Make It Right"></a></div>

在控制台中生成

undefined
undefined
<a href="http://www.makeitrightnola.org" id="ad-35" target="_blank"><img src="/g/shows/sidebar/83172823_ad_image.png" alt="Make It Right"></a>

如何访问链接的属性?出了什么问题?

1 个答案:

答案 0 :(得分:1)

删除.find('a')中的var href = $(this).find('a').attr('href');。您已经点击<a>元素上的“ing”,因此$(this).attr('href');

就足够了

试试这个:

$( ".ads-box a" ).click(function( event ) {
  event.preventDefault();
  var href = this.href;  // i used vanilla JS here
  var id = this.id;      // i used vanilla JS here
  console.log(href);
  console.log(id);
  console.log(this);
});

演示here