如何在javascript中将html转换为变量?

如何在javascript中将html转换为变量?,javascript,jquery,html,Javascript,Jquery,Html,我在将html转换为javascript变量时遇到问题。 我的HTML代码 <div onclick="openfullanswer('2','Discription part','This is the code part');"> 我想动态地创建这个html代码,但是引号(“and”)中有问题 我像下面那样试过 for(i=0;i<result.length;i++) { strVar +="<div onclick='open

我在将html转换为javascript变量时遇到问题。

我的HTML代码

<div onclick="openfullanswer('2','Discription part','This is the code part');">

我想动态地创建这个html代码,但是引号(“and”)中有问题

我像下面那样试过

for(i=0;i<result.length;i++)
{       
        strVar +="<div onclick='openfullanswer("+result[i].ReplyID+",'"+result[i].Description+"','"+result[i].Code+"');'>Test code</div>";
}
用于(i=0;i方式1:
您必须更改单引号和双引号的顺序,并且必须在单击函数参数中用“\”转义单引号

请查看下面的代码片段以了解更多信息

var结果=[];
var obj=新对象();
对象ReplyID=1;
obj.Description=“这是我的描述”;
obj.Code=“这是我的代码部分”;
结果:推送(obj);
strVar=“”;
对于(i=0;i
strVar+=“测试代码”;

试试这个。

您编写的代码会产生以下结果:

<div onclick='openfullanswer(1,'This is my description','This is my Code Part');'>Test code</div>
一篇这样的文章详细解释了这件事

请参见此处的工作演示:


另外,我稍微改变了声明和调用函数的方式,因为它给出了一个错误。

除了构建字符串,您还可以使用document.createElement生成div,然后将其附加到父测试

var结果=[];
var obj=新对象();
对象ReplyID=1;
obj.Description=“这是我的描述”;
obj.Code=“这是我的代码部分”;
结果:推送(obj);
var-div;

对于(i=0;i由于上面已经回答了您的需要,我只想补充一点,您尝试访问和操作DOM元素的方式不是安全的,也不是推荐的处理DOM元素的方式。与其直接写入DOM,不如使用函数并将元素绑定到它

比如说不是写,

strVar +="<div onclick='openfullanswer("+result[i].ReplyID+",'"+result[i].Description+"','"+result[i].Code+"');'>Test code</div>";
strVar+=“测试代码”;
你应该改做

strVar.outerHTML += '<input id="btncall" ...>'

document.getElementById ("btncall").addEventListener ("click", openfullanswer(parameters), false);
strVar.outerHTML+='
document.getElementById(“btncall”).addEventListener(“单击”,openfullanswer(参数),false);

您可以使用
模板文字

var结果=[];
var obj=新对象();
obj.ReplyID=1;
obj.Description=“这是我的描述”;
obj.Code=“这是我的代码部分”;
结果:推送(obj);
strVar=“”;
对于(i=0;i


你能解释一下你的答案吗?谢谢你的回答,但是我不能用这个方法解决我的问题,因为我不仅生成这个div。你不应该用字符串来构建复杂的DOM元素。如果这个数组有几个对象,你想要一个每个对象都有onclick回调的div…请检查这个out:…我是按我的方式做的。希望能有所帮助,如果你需要的话,我很乐意进一步解释。K你能给我更多关于转义角色的解释吗
strVar +="<div onclick='openfullanswer("+result[i].ReplyID+",'"+result[i].Description+"','"+result[i].Code+"');'>Test code</div>";
strVar.outerHTML += '<input id="btncall" ...>'

document.getElementById ("btncall").addEventListener ("click", openfullanswer(parameters), false);