javascript - 未定义的 JS 警报

标签 javascript php

我有一个 a-tag ,其内容如下:(并且有许多 a-tag 被动态填充,因为它保留在 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'输出

我在这里遗漏了什么吗?

最佳答案

在函数内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);
}

关于javascript - 未定义的 JS 警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41649769/

相关文章:

javascript - 如何在 Chrome 中检查输入类型 ="date"的(空)值

javascript - 使用 JSON 填充 HTML 元素

php - 如何从 fatal error 中获取调用堆栈?

php - 这是从数据库获取数据的有效方法吗?

php - 根据搜索条件在 PHP 中嵌入 SQL 搜索 $var

javascript - 单击此图像的 map 区域时获取 img 标签 ID

javascript - ReactJS:访问状态内的对象并更新它

javascript - 当 reducer 函数依赖于组件 prop 时,传递给 useReducer 钩子(Hook)的 Reducer 函数会针对一次调度调用执行多次

当选择区域时,PHP 从数据库填充数据

php - 静态方法与非静态方法