在JavaScript中需要第三种引号

时间:2016-08-03 09:19:58

标签: javascript html quotation-marks

我正在使用javascript更改HTML。因此,我有一个保存HTML代码的String,因为它是在for循环中生成的。其中有一个<a>标记。对于<a>标记,我想添加onClick,该let parameter = "p1"; let to_html_String = "<a href='#' onClick='create_sprite_window("+parameter+")'></a>"; document.getElementById('sidebar_left_sprites').innerHTML = to_html_String; 使用保存在javascript变量中的参数调用函数。

<a href='#' onClick='create_sprite_window(p1)'></a>

这不起作用,因为它会产生以下html:

let parameter = "p1";
let to_html_String = "<a href='#' onClick='create_sprite_window(#"+parameter+"#)'></a>";
document.getElementById('sidebar_left_sprites').innerHTML = to_html_String;

它不起作用,因为p1之前和之后没有引号。 我的问题是我需要第三种引号才能解决这个问题。 在下面的例子中,我将使用#,我需要这些引号:

// Initialize the app with a service account, granting admin privileges
FirebaseOptions options = new FirebaseOptions.Builder()
    .setDatabaseUrl("https://databaseName.firebaseio.com")
    .setServiceAccount(new FileInputStream("path/to/serviceAccountCredentials.json"))
    .build();
FirebaseApp.initializeApp(options);

我不能使用单个引号,因为它会结束onClick而我不能使用double,因为它会以to_html_String结束。

是否有第三个引号或是否有另一种解决方法?

4 个答案:

答案 0 :(得分:3)

如果您正在使用ES6,则可以使用template strings之类的

let foo = `Hello "World's"`;

无论如何 - 为什么你不能逃脱你的引号?

let bar = 'hello \' world';
let buz = "hello \" world";

答案 1 :(得分:2)

不要使用JavaScript构建HTML。 DOM API将允许您干净,安全地构建文档节点,甚至可以附加事件侦听器,因此您不必在使用JavaScript构建的HTML中构建JavaScript字符串。

let parameter = "p1";

const link = document.createElement('a');
link.href = '#';
link.textContent = 'maybe you want something in this link?';
link.addEventListener('click', function (e) {
    e.preventDefault();
    create_sprite_window(parameter);
});

document.getElementById('sidebar_left_sprites')
    .appendChild(link);

答案 2 :(得分:0)

这将有效

"<a href='#' onClick='create_sprite_window('"+parameter+"')></a>";

答案 3 :(得分:0)

/ *使用\&#39;区分功能单引号* /

让参数=&#34; p1&#34 ;; 让to_html_String =&#34;&#34 ;; document.getElementById(&#39; sidebar_left_sprites&#39;)。innerHTML = to_html_String;