Passing a string in onclick function's attribute of element dynamically created element
html, javascript
Solution
You have to use proper string sytax. This
"<a href='#' onclick='test('"+elem[i].url+"')'>dd</a><br><br>"
will result in
<a href='#' onclick='test('http://domain.tld')'>dd</a><br><br>
You cannot use ' for onclick and the parameters of test. Use \" instead.
"<a href='#' onclick='test(\""+elem[i].url+"\")'>dd</a><br><br>"
Which results in
<a href='#' onclick='test("http://domain.tld")'>dd</a><br><br>
Problem
I am trying to pass a string in the onClick event handler function's arguments of the dynamically created anchor element, see the fiddle http://jsfiddle.net/shmdhussain/bXYe4/. I am not able to pass the string to the function, but i am able to pass the number integer to the function. Please help me in this. Thanks in advance. html: ``` <DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>test</title> <link rel="stylesheet" href="mystyle.css" class="cssfx"/> <script src="/jquery.min.js"></script> <script src="colon.js"></script> </head> <body> <div class="mytest"> </div> </body> </html> </html> ``` Javascript: ``` var elem=[ {"name":"husain","url":"http://google.com","age":21}, {"name":"ismail","url":"http://yahoo.com","age":22}, {"name":"nambi","url":"http://msn.com","age":23} ] jQuery(function($){ var str=""; for(i=0;i<elem.length;i++){ str+="<a href='#' onclick='test('"+elem[i].url+"')'>dd</a><br><br>" console.log(str); } $('.mytest').html(str); }); function test(url){ console.log("url is "+url); } ```