简体   繁体   English

在Jade中,如何在onclick函数调用中传递参数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM