未定义的JS警报

时间:2017-01-14 12:02:52

标签: javascript php

我有一个 a-tag ,其内容如下:(并且有一些a-tags被动态填充,因为它保留在PHP循环中。)

echo "<a onclick='trygettheid();' class='mainList' id='main' href='index.php?idd=".$reK['catid']."'><div class='AS1'>".$reK['catdescriptor']."</div></a>";

,JS函数如下所示。

function trygettheid()
{
    var myvariable = $(this).attr('id');
    alert(myvariable);
}

问题是当触发点击时,警告显示'undefined'而不是'main'

的所需输出

我在这里遗漏了什么吗?

1 个答案:

答案 0 :(得分:4)

在函数this内部没有引用被点击的元素,它可能是window个对象。要修复它,将引用作为参数传递给函数。虽然不需要使用jQuery,因为id可以从元素id属性获取。

PHP:

 echo "<a onclick='trygettheid(this);' class='mainList' id='main' href='index.php?idd=".$reK['catid']."'><div class='AS1'>".$reK['catdescriptor']."</div></a>";
 //                       ------^------

<小时/> JS:

function trygettheid(ele){
  //             -----^-----
  var myvariable = ele.id;
  //             ---^--^----
  alert(myvariable);
}