Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript string parameter in function

Tags:

javascript

I'm working with google maps api and I want the label of a marker have a link that execute a warning.

var str = "hi";
var mp_position = createGoogleMapsLocation(data[i].location);
var text = "<p>Edit: <a href=# onClick='edit("+str+")'>Click here</a></p>";
addMeetingMarker(mp_position, text);

The addMeetingMarker function works, but edit function not. The code is:

function edit(message) {
    alert(message);
}

If you set an integer in the argument of the edit function it works, but passing the variable str does not work. Why?

like image 497
Josh Mouse Avatar asked Dec 11 '25 09:12

Josh Mouse


2 Answers

You need more double quotes to surround your value string - so:

var text = "<p>Edit: <a href=# onClick='edit("+str+")'>Click here</a></p>";

becomes

var text = "<p>Edit: <a href=# onClick='edit(\""+str+"\")'>Click here</a></p>";
like image 89
BlackSpy Avatar answered Dec 12 '25 22:12

BlackSpy


edit("+str+")

will result in the javascript code

edit(hi)

Where hi is an unknown variable. Depending on what you want the edit function to do, either add a quote: edit\""+str+"\"), or remove the plusses: edit(str). In the last case, the edit function will receive the str variable, in the first case, it will receive the "hi" literal.

like image 44
xtofl Avatar answered Dec 12 '25 22:12

xtofl