在javascript var中存储具有双引号的数据

时间:2017-03-24 09:43:53

标签: javascript

我有一个包含数据的var脚本。但是,当我将其添加到另一个变量时,它无效。

var x = '32"';

onclick="javascript:selectSize(' + "'" + x + "'" + ');"

我想要

onclick="javascript:selectSize('32"');"

但它变成了

onclick="javascript:selectSize('32"');""=""

我不知道发生了什么

2 个答案:

答案 0 :(得分:-1)

来自评论,使用编码/解码URI组件如下



var a=encodeURIComponent('abc"');
console.log(a);
console.log(decodeURIComponent(a));




答案 1 :(得分:-1)

onclick="javascript:selectSize('32"');"
        ^                         ^

HTML解析器将在将值传递给JS引擎执行之前解析属性值。

您正在使用"来分隔属性值。

第二个"结束属性值。

如果您想在"分隔的属性值中使用"作为数据,则必须将其表示为实体(例如")。

var html_x = x.replace(/"/g, """);

当您开始生成嵌套语言时,转义变得非常痛苦。

您在JavaScript中嵌入了嵌入JavaScript的JavaScript。

避免将字符串混合在一起构建DOM。直接使用DOM方法。

var x = '32"';
var button = document.createElement("button");
button.addEventListener("click", function (event) { 
    selectSize(x);
});