这里有几件事...
如果你想在 onclick 事件发生时调用一个函数,你只需要函数名加上参数。
然后,如果您的参数是一个变量(它们看起来像),那么您将不需要在它们周围加上引号。不仅如此,如果这些是全局变量,您还需要在“窗口”中添加。在此之前,因为它是包含所有全局变量的对象。
最后,如果这些参数不是变量,您需要排除斜线来转义这些字符。由于 onclick 的值是用双引号括起来的,所以单引号不会成为问题。所以你的答案看起来像这样......
<a href=# onclick="ReAssign('valuationId', window.user)">Re-Assign</a>
如果您想要的不仅仅是快速解决方案,这里还有一些额外的事情需要注意。
您看起来像是在尝试使用 + 运算符来组合 HTML 中的字符串。HTML 是一种脚本语言,因此当您编写它时,整个内容本身就是一个字符串。从现在开始您可以跳过这些,因为它不是您的浏览器将运行的代码(只是一大堆东西,任何已经存在的东西都是浏览器具有特殊含义的东西)。
接下来,您使用的锚标记/链接实际上不会将用户带到另一个网站,只是运行一些代码。我会使用锚标记以外的其他东西,并使用适当的 CSS 来格式化它以使其看起来像你想要的那样。这实际上取决于设置,但在许多情况下,span 标签就可以了。给它一个类(如 class="runjs")并为此设置 CSS 规则。要让它模仿链接的行为,请使用以下命令:
.runjs {
cursor: pointer;
text-decoration: underline;
color: blue;
}
这使您可以省略无论如何都没有使用的 href 属性。
最后,您可能希望使用 JavaScript 来设置此链接的 onclick 属性的值,而不是手写。它通过将页面代码与页面结构分开来保持页面清洁。在您的课堂上,您可以像这样更改所有这些链接...
var links = document.getElementsByClassName('runjs');
for(var i = 0; i < links.length; i++)
links[i].onclick = function() { ReAssign('valuationId', window.user); };
虽然这在某些较旧的浏览器中不起作用(因为 getElementsByClassName 方法),但它只有三行,并且完全符合您的要求。这些链接中的每一个都有一个与之相关的匿名函数,这意味着除了该标签的 onclick 值之外,它们没有任何变量与它们相关联。另外,如果您愿意,您可以通过这种方式包含更多代码行,所有代码都集中在一个整洁的位置。