将此字符串作为参数传递给jquery函数

时间:2017-04-05 09:01:25

标签: javascript jquery

我尝试附加以下具有onclick功能的标记。

 $("body").append('<img onclick="removeDynamicColumn(this,'someString')" src="css/images/builder/removeTDTR.png"/>');

在这个函数中,我传递两个参数,一个是元素本身,另一个是字符串,如果我用JSP中的单引号将该字符串参数括起来显示此错误 -

  

令牌上的语法错误&#34; someString&#34;,AssignmentOperator无效。

如果我在调用该函数时用双引号括起来,我会收到此错误 -

  

SyntaxError:期望表达式,得到脚本结束

5 个答案:

答案 0 :(得分:4)

Missing Escape&#39; \&#39;代码中的字符。

尝试该代码;

$("body").append('<img onclick="removeDynamicColumn(this,\'someString\')" src="css/images/builder/removeTDTR.png"/>');

答案 1 :(得分:4)

尝试escape \

 $("body").append('<img onclick="removeDynamicColumn(this,\'someString\')" src="css/images/builder/removeTDTR.png"/>');

答案 2 :(得分:2)

你需要逃避引号。

尝试在\周围的'个字符前使用someString

\'someString\'

答案 3 :(得分:1)

为什么要这样绑定它 - 如果你使用的是jQuery,那么你可以使用delegated bind然后使用data-属性作为你的字符串:

var body = $("body");

// give your image a class and data attribute for your string
body.append('<img src="css/images/builder/removeTDTR.png" data-string="some string" class="click-image">')

// this is delegated bind
body.on('click', '.click-image', function() {
   var image = $(this),                  // your image as a jquery object
       someString = image.data('string'); // your string 
   // do your onclick action here
});

答案 4 :(得分:1)

假设我们在这样的变量中有一个字符串:

var param = "somestring"

我们可以通过以下方式将此变量注入您的示例:

$("body").append('<img onclick="removeDynamicColumn(this, \'' + param + '\')" src="css/images/builder/removeTDTR.png"/>');

GL