2016-11-25 52 views
0

我有一个JavaScript playAudio()函数,期望一个字符串参数。我似乎无法弄清楚如何在不中断字符串的情况下将字符串值作为参数传递给此函数。如何在字符串内的字符串中传递字符串?

htmlString = "<button class='button-icon' value='PLAY' onclick='playAudio()'></button>"; 

我想通过字符串“SP00005”作为参数。但是我无法使用引号或撇号,因为这些已经用于我的htmlString的更外层部分。

我甚至试过分手形成htmlString到各个步骤如下图所示:

htmlString = ""; 
htmlString += "<button class='button-icon' value='PLAY' onclick='playAudio("; 
htmlString += "SP00005"; 
htmlString += ")'></button>"; 

所以,我对你的问题是:我怎么通过一个字符串,它本身是在一个字符串中的字符串?

+0

htmlString =“<按钮类=‘按钮图标’值=‘玩’的onclick ='playAudio(\”更多字符串\“)'>”; –

回答

2

一种方法是跳过"

htmlString = "<button class='button-icon' value='PLAY' onclick='playAudio(\"foo\")'></button>"; 

更好的选择是选择使用javascript的按钮,添加一个事件监听,并不理会内联JS

<button id="fooBtn" class='button-icon' value='PLAY'></button> 

JS:

document.getElementById('fooBtn').addEventListener('click', function() { 
    playAudio("SP00005"); 
}); 
+0

非常感谢!逃避做到了!事件监听器不适合,因为该页面是动态的,并根据数据库加载的内容添加不同的按钮。非常感谢!! – rvelbon

+0

非常欢迎@rvelbon – baao

0

可以逃脱 “与\"'

的试验例= "Hello, I am \"Steve\""

解析为:您好,我是 ”史蒂夫“

0

你需要做的这样,使用\” 里面playAudio ():

htmlString = ""; 
htmlString += "<button class='button-icon' value='PLAY' onclick='playAudio(\""; 
htmlString += "SP00005"; 
htmlString += "\")'></button>"; 
0

您还可以使用回蜱。这将允许你建立字符串但是你想不转义字符

var string = `<button class='button-icon' value='PLAY' onclick='playAudio('SP00005')'></button>`; 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

+1

从es6开始,没有IE支持,但现在这样做的一个好方法 – baao

+1

感谢您的宝贝宝! –

+0

我讨厌这么说,我一直在使用模板字符串..但是,所有新的内容都会打破IE ... :) – baao

相关问题