将字符串参数传递给onclick javascript函数

时间:2015-11-07 01:05:52

标签: javascript html string function onclick

我正在尝试将javascript变量传递给onclick函数,该函数可以正常使用数字变量但不能使用字符串。我需要从像这样的对象传递attribut:

onclick="showImg(<%= ep.trackId%>);

我的showImg函数接受此attribut,但是当我尝试传递一个这样的字符串时:

onclick='showImg(\""+<%= ep.artworkUrl30 %>+"\");'>

该功能根本不起作用。有没有办法让它工作或绕过这个问题?

4 个答案:

答案 0 :(得分:1)

您不希望使用函数调用污染html,因此请勿使用onclick属性。使用javaScript添加事件侦听器。

var someString = "\<%= ep.artworkUrl30 %>\";
element.addEventListener('click', function(someString){
   //do something with someString
});

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

答案 1 :(得分:1)

ASP.NET代码块(<%= ... %>)在服务器端处理;无需连接引号。试试吧:

onclick='showImg("<%= ep.artworkUrl30 %>");'>

答案 2 :(得分:0)

我认为'未正确关闭,请尝试

onclick='showImg(\"'+<%= ep.artworkUrl30 %>+'\");'>

编辑: 查看您的代码后   你可以尝试

<% var epArray = episodes[0]; %>
<% _.each(epArray, function(ep){ %>
    <option value="<%= ep.trackNumber %>" onclick='showImg("<%= ep.artworkUrl30 %>");'><%= ep.trackName %></option>
<% }); %>

答案 3 :(得分:0)

这绝对是你如何逃避各种报价的问题。这真的取决于你的陈述的背景。如果你是原始HTML,那么你应该:

    <body onclick='showImg("<%= ep.artworkUrl30 %>")'></body>

如果您需要字符串中的引号,那么这些将是:

    <body onclick='showImg("\"<%= ep.artworkUrl30 %>\"")'></body>

但是,如果您尝试在javascript中生成HTML(就像它可能会出现一样),那么您可能必须使用其他字符串转义方法。