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

时间:2017-11-14 18:58:47

标签: javascript pug

a(id='myLinkTag' onclick='myFunction(' + user._id + ')' href='') Delete

这里user._id是变量并试图将该值传递给myFunction。

syntaxError:无效或意外的令牌

2 个答案:

答案 0 :(得分:1)

这里的问题是javascript期望功能引用。玉正在制作的是<a id='myLinkTag' onclick='myFunction(userid) href=''>

这不是javascript所期望的,Javascript期望为其onclick函数提供有效的变量名称。有两种选择:

  • 如果您确定,则user._id NO WAY 除了字符串仅包含之外的任何内容字母数字字符(new RegExp(/^(A-Za-z0-9)+$/))然后在myFunction中加上引号:a(id='myLinkTag' onclick='myFunction(\'' + user._id + '\')' href='') Delete

  • 如果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>

答案 1 :(得分:0)

使用不同的嵌套引号,以便将字符串传递给函数。

a(id='myLinkTag' onclick="myFunction(' + user._id + ')" href='') Delete