[英]In Jade, how to pass parameters in the onclick function call
a(id='myLinkTag' onclick='myFunction(' + user._id + ')' href='') Delete
Here user._id is the variable and trying to pass that value to myFunction . 这里的user._id是变量,并试图将该值传递给myFunction。
syntaxError: Invalid or unexpected token 语法错误:无效或意外的令牌
The problem here is that javascript is expecting quotes around functions. 这里的问题是javascript期望函数周围有引号。 What jade is making is
<a id='myLinkTag' onclick='myFunction(userid) href=''>
翡翠正在制造的是
<a id='myLinkTag' onclick='myFunction(userid) href=''>
This is not what javascript is expecting, Javascript expects a valid variable name to be given to its onclick functions. 这不是javascript所期望的,Javascript希望为其onclick函数赋予有效的变量名称。 There are two choices:
有两种选择:
If you are SURE that there is NO WAY for user._id to ever be anything other than a string ONLY CONTAINING alphanumeric characters ( new RegExp(/^(A-Za-z0-9)+$/)
) then put quotes in myFunction: a(id='myLinkTag' onclick='myFunction(\\'' + user._id + '\\')' href='') Delete
如果你确信 没有办法为user._id永远比一个字符串只有包含字母数字字符(其它任何
new RegExp(/^(A-Za-z0-9)+$/)
然后把报价在myFunction的: a(id='myLinkTag' onclick='myFunction(\\'' + user._id + '\\')' href='') Delete
If user._id can be more than alphanumeric characters, you can instead use jade to set a class and a custom attribute like a(id='myLinkTag' class="myclass" userid=user._id href='') Delete
then in javascript you can: 如果user._id可以超过字母数字字符,则可以使用jade设置类和自定义属性,例如
a(id='myLinkTag' class="myclass" userid=user._id href='') Delete
然后在JavaScript,您可以:
: :
$(".myclass").click(function(e){ var userid = $(e.target).attr("userid"); console.log(userid); alert(userid); });
Jade would be: a(id='myLinkTag' class="myclass" userid=user._id href='#') a(id='myLinkTag2' class="myclass" userid=user2._id href='#') a(id='myLinkTag3' class="myclass" userid=user3._id href='#')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <a class="myclass" userid="myuserid" href="#">link</a> <a class="myclass" userid="myuserid2" href="#">link2</a> <a class="myclass" userid="myuserid3" href="#">link3</a>
使用不同的嵌套引号,以便您将字符串传递给函数。
a(id='myLinkTag' onclick="myFunction(' + user._id + ')" href='') Delete
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.