将变量传递给Javascript函数 - 语法?

时间:2012-08-25 13:50:59

标签: javascript

我知道这里有很多类似的问题,甚至我在某种程度上对此有所了解 - 但我正在努力解决这个特定代码,并作为一个JS新手,我无法弄清楚我哪里出错了。

我基本上正在调整TinyMCE以摆脱弹出对话框(用我自己的替换它们,以保持清洁)。我正在处理的那个是插入图像。这是我现在的功能;

<script type="text/javascript">
function addImage(imgurl){
tinyMCE.execCommand('mceInsertContent',false,'<img src=" +imgurl+ " style="float:left; margin: 0    5px 5px 0;" />');
}
</script>

和链接

<a href="javascript:;" onclick="addImage('/myimage.jpg');return false;">[Insert Image]</a>

函数“有效”,因为它插入了代码,但是'imgurl'(在这个例子中是myimage.jpg)没有被传递 - 而是插入了/myimage.jpg,它的插入+ imgurl +。< / p>

这位新手非常赞赏指针!

3 个答案:

答案 0 :(得分:3)

你的连接不正确...用单引号打开时,用单引号连接。使用双引号时,请使用双引号。

function addImage(imgurl){
     tinyMCE.execCommand('mceInsertContent',false,'<img src="'+imgurl+'" style="float:left; margin: 0 5px 5px 0;" />');
}

您可以找到大量简单深入解释连接的简单教程。一般规则是保持一致。如果你用双引号括起你的字符串,单引号将不会停止解析字符串,因为编译器识别双引号来执行此操作。单引号也是如此。下面的代码将Hello'; // broken string解析为字符串,就像使用错误引号连接一样。

var string = "Hello'; // broken string

避免像这样的问题的一个好方法(因为即使专业程序员每隔一段时间仍然会遇到语法错误)就是使用具有语法高亮的优秀编程编辑器(notepad ++,sublime 2,coda,textmate,phpad)。即使是stackoverflow.com的简单荧光笔也足够了。只需查看上面的代码,您就可以看出双引号(")之后的所有内容仍然被解析为字符串,因为它仍然是与字符串相同的颜色,而变量在通过时会改变颜色语法荧光笔。

答案 1 :(得分:1)

你传递变量就好了。问题是你是连接它的值,而是一个值为+imgurl+的字符串。请改用以下内容(请注意'之前和之后的结束+ imgurl +

tinyMCE.execCommand('mceInsertContent',false,'<img src="' +imgurl+ '" style="float:left; margin: 0    5px 5px 0;" />');

答案 2 :(得分:0)

您的字符串格式不正确:

'<img src="' + imgurl + '" style="float:left margin: 0 5px 5px 0;" />';